Finished and tested database writing code for non table entities. Improved information reporting to the user, and created a new DbWriter object for table operations only.

This commit is contained in:
2016-12-06 12:39:38 -06:00
parent d8c753f788
commit 1398ecd1ab
10 changed files with 300 additions and 157 deletions
+36 -28
View File
@@ -23,10 +23,10 @@ namespace AdvertsingProfitControl
/// <param name="salesTable">The data table that contains the data to be inserted.</param>
/// <param name="connectionString">A string pointing to the database.</param>
/// <returns>A DbWriterStatus object that contains a status, rows added and an error message if necessary.</returns>
public DbWriterStatus InsertIntoSalesTable(DataTable salesTable, string connectionString)
public DbTableWriterStatus InsertIntoSalesTable(DataTable salesTable, string connectionString)
{
var lastRowProcessed = 0;
var writerStatus = new DbWriterStatus();
var writerStatus = new DbTableWriterStatus();
var oleDbConnection = new OleDbConnection(connectionString);
var oleDbCommand = new OleDbCommand
{
@@ -126,9 +126,9 @@ namespace AdvertsingProfitControl
/// <param name="salesTable">The data table that contains the data to be inserted.</param>
/// <param name="connectionString">A string pointing to the database.</param>
/// <returns>A DbWriterStatus object that contains a status, rows added and an error message if necessary.</returns>
public DbWriterStatus UpdateSalesTable(DataTable salesTable, string connectionString)
public DbTableWriterStatus UpdateSalesTable(DataTable salesTable, string connectionString)
{
var updateStatus = new DbWriterStatus();
var updateStatus = new DbTableWriterStatus();
var lastRowProccessed = 0;
var oleDbConnection = new OleDbConnection(connectionString);
var oleDbCommand = new OleDbCommand
@@ -228,9 +228,9 @@ namespace AdvertsingProfitControl
/// <param name="table">The data table that contains the data to be inserted.</param>
/// <param name="connectionString">A string pointing to the database.</param>
/// <returns>A DbWriterStatus object that contains a status, rows added and an error message if necessary.</returns>
public DbWriterStatus InsertIntoInventoryTable(DataTable table, string connectionString)
public DbTableWriterStatus InsertIntoInventoryTable(DataTable table, string connectionString)
{
var status = new DbWriterStatus();
var status = new DbTableWriterStatus();
var lastRowProcessed = 0;
var oleDbConnection = new OleDbConnection(connectionString);
var oleDbCommand = new OleDbCommand
@@ -321,9 +321,9 @@ namespace AdvertsingProfitControl
/// <param name="table">The table with the changes to be made.</param>
/// <param name="connectionString">A string pointing to the database.</param>
/// <returns>A DbWriterStatus object that contains a status, rows added and an error message if necessary.</returns>
public DbWriterStatus UpdateInventoryTable(DataTable table, string connectionString)
public DbTableWriterStatus UpdateInventoryTable(DataTable table, string connectionString)
{
var status = new DbWriterStatus();
var status = new DbTableWriterStatus();
var lastRowProcessed = 0;
var oleDbConnection = new OleDbConnection(connectionString);
var oleDbCommand = new OleDbCommand
@@ -408,9 +408,9 @@ namespace AdvertsingProfitControl
}
public DbWriterStatus ProccessInvoiceTable(DataGridView table, int dateId, string connectionString)
public DbTableWriterStatus ProccessInvoiceTable(DataGridView table, int dateId, string connectionString)
{
var status = new DbWriterStatus();
var status = new DbTableWriterStatus();
var lastRowProcessed = 0;
var rowsAdded = new List<int>();
var oleDbConnection = new OleDbConnection(connectionString);
@@ -549,22 +549,24 @@ namespace AdvertsingProfitControl
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
status.AddRowId(0, int.Parse(reader[0].ToString()));
status.Id = int.Parse(reader[0].ToString());
}
status.Status = status.Id > 0 ? WritingOperationStatus.InsertionSuccessful : WritingOperationStatus.Failed;
}
else
{
oleDbCommand.CommandText = "UPDATE Comment SET Comment = ? WHERE ID = ?";
oleDbCommand.Parameters.AddWithValue("Comment", comments);
oleDbCommand.Parameters.AddWithValue("ID", id);
oleDbCommand.ExecuteNonQuery();
var rowsEffected = oleDbCommand.ExecuteNonQuery();
status.Status = rowsEffected == 1 ? WritingOperationStatus.UpdateSuccessful : WritingOperationStatus.Failed;
}
}
catch (OleDbException e)
{
status.SetStatus(WritingOperationStatus.Failed);
status.Status = WritingOperationStatus.Failed;
_logConsole.WriteToLog(FrmLogConsole.Level.Error, "Failed to process the comment(s): " + e.Message);
status.SetErrorMessage("Failed to update or insert comments into the database.");
status.ErrorMessage = "Failed to update or insert comments into the database.";
}
finally
{
@@ -606,8 +608,9 @@ namespace AdvertsingProfitControl
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
status.AddRowId(0, int.Parse(reader[0].ToString()));
status.Id = int.Parse(reader[0].ToString());
}
status.Status = status.Id > 0 ? WritingOperationStatus.InsertionSuccessful : WritingOperationStatus.Failed;
}
else
{
@@ -621,14 +624,15 @@ namespace AdvertsingProfitControl
oleDbCommand.Parameters.AddWithValue("Saturday", weeklySales[6]);
oleDbCommand.Parameters.AddWithValue("TotalSales", weeklySales[7]);
oleDbCommand.Parameters.AddWithValue("ID", id);
oleDbCommand.ExecuteNonQuery();
var rowsEffected = oleDbCommand.ExecuteNonQuery();
status.Status = rowsEffected == 1 ? WritingOperationStatus.UpdateSuccessful : WritingOperationStatus.Failed;
}
}
catch (OleDbException e)
{
status.SetStatus(WritingOperationStatus.Failed);
status.Status = WritingOperationStatus.Failed;
_logConsole.WriteToLog(FrmLogConsole.Level.Error, "Failed to process the weekly sales: " + e.Message);
status.SetErrorMessage("Failed to update or insert weekly sales into the database.");
status.ErrorMessage = "Failed to update or insert weekly sales into the database.";
}
finally
{
@@ -670,8 +674,9 @@ namespace AdvertsingProfitControl
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
status.AddRowId(0, int.Parse(reader[0].ToString()));
status.Id = int.Parse(reader[0].ToString());
}
status.Status = status.Id > 0 ? WritingOperationStatus.InsertionSuccessful : WritingOperationStatus.Failed;
}
else
{
@@ -685,14 +690,15 @@ namespace AdvertsingProfitControl
oleDbCommand.Parameters.AddWithValue("Saturday", taxable[6]);
oleDbCommand.Parameters.AddWithValue("TotalSales", taxable[7]);
oleDbCommand.Parameters.AddWithValue("ID", id);
oleDbCommand.ExecuteNonQuery();
var rowsEffected = oleDbCommand.ExecuteNonQuery();
status.Status = rowsEffected == 1 ? WritingOperationStatus.UpdateSuccessful : WritingOperationStatus.Failed;
}
}
catch (OleDbException e)
{
status.SetStatus(WritingOperationStatus.Failed);
status.Status = WritingOperationStatus.Failed;
_logConsole.WriteToLog(FrmLogConsole.Level.Error, "Failed to process the taxable: " + e.Message);
status.SetErrorMessage("Failed to update or insert taxable into the database.");
status.ErrorMessage = "Failed to update or insert taxable into the database.";
}
finally
{
@@ -723,15 +729,16 @@ namespace AdvertsingProfitControl
oleDbCommand.Parameters.AddWithValue("DateID", dateId);
oleDbCommand.ExecuteNonQuery();
//Now grab the ID number of the comment that was just added.
oleDbCommand.CommandText = "SELECT ID FROM Taxable WHERE FK_DateID = ?";
oleDbCommand.CommandText = "SELECT ID FROM CostOfSalesAnalysis WHERE FK_DateID = ?";
oleDbCommand.Parameters.Clear();
oleDbCommand.Parameters.AddWithValue("DateID", dateId);
//Now read the ID number and add it to the collection with a default key.
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
status.AddRowId(0, int.Parse(reader[0].ToString()));
status.Id = int.Parse(reader[0].ToString());
}
status.Status = status.Id > 0 ? WritingOperationStatus.InsertionSuccessful : WritingOperationStatus.Failed;
}
else
{
@@ -741,14 +748,15 @@ namespace AdvertsingProfitControl
oleDbCommand.Parameters.AddWithValue("SalaryDollars", costAnalysis[2]);
oleDbCommand.Parameters.AddWithValue("Supplies", costAnalysis[3]);
oleDbCommand.Parameters.AddWithValue("ID", id);
oleDbCommand.ExecuteNonQuery();
var rowsEffected = oleDbCommand.ExecuteNonQuery();
status.Status = rowsEffected == 1 ? WritingOperationStatus.UpdateSuccessful : WritingOperationStatus.Failed;
}
}
catch (OleDbException e)
{
status.SetStatus(WritingOperationStatus.Failed);
_logConsole.WriteToLog(FrmLogConsole.Level.Error, "Failed to process the taxable: " + e.Message);
status.SetErrorMessage("Failed to update or insert taxable into the database.");
status.Status = WritingOperationStatus.Failed;
_logConsole.WriteToLog(FrmLogConsole.Level.Error, "Failed to process the cost analysis: " + e.Message);
status.ErrorMessage = "Failed to update or insert costs analysis.";
}
finally
{