private void MigrateUnprocessedCompaniesFromJDE(iDB2Command db2Command) { Dictionary <string, Company> jdeCompList = new Dictionary <string, Company>(); st.insertLog("Migrating Companies", "Info", "NA", LogId); iDB2DataReader reader; using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction()) { db2Command.Transaction = db2Transaction; db2Command.CommandText = string.Format("SELECT * FROM FSTCOMP WHERE SCSTAT != '{0}'", "P"); reader = db2Command.ExecuteReader(); while (reader.Read()) { Company temp = new Company(); temp.scan8 = (string)reader["SCAN8"]; temp.type = Char.Parse((string)reader["SCACTN"]); //Company Name temp.name = ((string)reader["SCNAME"]).Trim(); temp.addressStreet = ((string)reader["SCADDR"]).Trim(); temp.addressCity = ((string)reader["SCCITY"]).Trim(); temp.addressState = ((string)reader["SCST"]).Trim(); temp.addressPostalCode = ((string)reader["SCZIP"]).Trim(); temp.customer = Int32.Parse((string)reader["SCCUST"]) == 1 ? true : false; temp.vendor = Int32.Parse((string)reader["SCVEND"]) == 1 ? true : false; temp.phoneNumber = ((string)reader["SCPHON"]).Trim(); temp.status = ((string)reader["SCSSTS"]).Trim(); jdeCompList.Add((string)reader["SCAN8"], temp); } reader.Close(); db2Command.Transaction.Dispose(); } if (jdeCompList.Count > 0) { st.insertLog(string.Format("Found {0} companies for update", jdeCompList.Count), "Info", "NA", HillerServiceDataMigrator.LogId); foreach (var jde in jdeCompList) { st.insertLog("Migrating " + jde.Value.name, "Info", "NA", HillerServiceDataMigrator.LogId); bool success = jde.Value.type == 'A' ? serviceTrade.AddCompany(jde.Value) : serviceTrade.UpdateCompany(jde.Value); if (success) { // log.Debug("Updating Migrated Companies."); using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction(IsolationLevel.Chaos)) { db2Command.Transaction = db2Transaction; db2Command.CommandText = "UPDATE FSTCOMP SET SCSTAT = @scstat WHERE SCAN8 = @key"; db2Command.DeriveParameters(); db2Command.Parameters["@scstat"].Value = 'P'; db2Command.Parameters["@key"].Value = jde.Key; // log.Debug(db2Command.CommandText); try { db2Command.ExecuteNonQuery(); } catch (Exception ex) { // log.Error("Company update unsuccessful ", ex); } db2Command.Transaction.Dispose(); } } } } else { // log.Info("No company found for processing."); } }