private void MigrateUnprocessedLocations(iDB2Command db2Command)
        {
            Dictionary <string, Location> jdeLocList = new Dictionary <string, Location>();

            // log.Debug("Migrating Location");

            using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction())
            {
                db2Command.Transaction = db2Transaction;
                db2Command.CommandText = string.Format("SELECT * FROM FSTLOCN WHERE SLSTAT != '{0}'", "P");
                iDB2DataReader reader = db2Command.ExecuteReader();

                while (reader.Read())
                {
                    Location temp = new Location();

                    temp.slan8             = ((string)reader["SLAN8"]).Trim();
                    temp.slpan8            = ((string)reader["SLPAN8"]).Trim();
                    temp.name              = ((string)reader["SLNAME"]).Trim();
                    temp.addressStreet     = ((string)reader["SLADDR"]).Trim();
                    temp.addressCity       = ((string)reader["SLCITY"]).Trim();
                    temp.addressState      = ((string)reader["SLST"]).Trim();
                    temp.addressPostalCode = ((string)reader["SLZIP"]).Trim();
                    temp.phoneNumber       = ((string)reader["SLPHON"]).Trim();
                    temp.type              = Char.Parse(((string)reader["SLACTN"]).Trim());
                    temp.officeIds         = new int[] { Int32.Parse(((string)reader["SLMCU"]).Trim()) };

                    jdeLocList.Add(temp.slan8, temp);
                }

                reader.Close();
                db2Command.Transaction.Dispose();
            }

            if (jdeLocList.Count > 0)
            {
                // log.Info(string.Format("Found {0} locations for update", jdeLocList.Count));
                foreach (var jde in jdeLocList)
                {
                    // log.Debug("Migrating " + jde.Value.name);
                    bool success = jde.Value.type == 'A' ? serviceTrade.AddLocation(jde.Value) : serviceTrade.UpdateLocation(jde.Value);
                    if (success)
                    {
                        using (iDB2Transaction db2Transaction = db2Command.Connection.BeginTransaction(IsolationLevel.Chaos))
                        {
                            db2Command.Transaction = db2Transaction;
                            db2Command.CommandText = string.Format("UPDATE FSTLOCN SET SLSTAT = @slstat WHERE SLAN8 = @key", jde.Key);
                            db2Command.DeriveParameters();
                            db2Command.Parameters["@slstat"].Value = 'P';
                            db2Command.Parameters["@key"].Value    = jde.Key;

                            try
                            {
                                db2Command.ExecuteNonQuery();
                            }
                            catch (Exception ex)
                            {
                                //     log.Error("Location update unsuccessful ", ex);
                            }

                            db2Command.Transaction.Dispose();
                        }
                    }
                }
            }
            else
            {
                //  log.Info("No location found for processing.");
            }
        }