protected override void OnInitialized() { MigrationStati = new MigrationStatusClass(); base.OnInitialized(); }
public async Task <bool> MigrateCity_Click() { #region LogicOfMigratiom /* * Cities have been migrated to and areas table * * City Related Tables * QOnT iSele * ======================= =================== * CityTbl Cities & Areas will be the same ID and name * CityPrepDaysTbl AreDaySettings * NextRoastDateByCity no longer used, now this dqta sits in AreaTbl, as this is caluclated per day, this date will not be migrated. * * FieldMapping * ================ * * CityTbl: * ID => Cities.CityID = Cities.AreaID; Areas.AeriaID * City => Cities.CityName; Areas.AreaName; * * Set. Notes to migrate or update * --- not other data from CotyTbl * * foreach CityPrepDay with CityID= CityTbl.ID * CityPrepDaysTbl: * CityID => Areas.AreaID * PrepDAyOfWeekID => PreperationDayOfWeekID * DeliveryDelayDays => DispatchDelayDays * DeliveryOrder = > DeliveryOrder * set EstimageDeiveryDelay = 0 - or can we do some logic here? this is used for thirdpartydeliveries * Set. Notes to migrate or update */ #endregion bool success = false; QonTCities = QOnTCityTbl.GetAll(); Logger.LogInfo("Started the city migration"); // Need to o a migration before riunning as Changed the settings // Declare all the QOnT classes needed /*replace with SQL migration * CityTblDAL QonTCityTbl = new CityTblDAL(); * CityPrepDaysTbl QOnTCityPrepDaysTbl = new CityPrepDaysTbl(); */ // get the data from the City table whcih is the parent table /*replace with SQL migration * List<CityTblData> QonTCities = QonTCityTbl.GetAll("ID"); */ // set migration status _MigrationStati = new MigrationStatusClass(); _MigrationStati.SourceTable = "QOnT->WeekDaysTbl"; _MigrationStati.SourceTable = "ISele->WeekDays"; _MigrationStati.CurrentSourceRecorderNumber = 0; await UpdateStati(); MigrateWeekDays migrateWeekDay = new MigrateWeekDays( QOnTWeekDaysTbl.GetAll().ToList(), iSeleWeekDay); Logger.LogInfo(" Migrationing WeekDays..."); success = await migrateWeekDay.AddOrUpdateWeekDays(); if (success) { Logger.LogInfo(" WeekDays migration done."); } else { Logger.LogError(" There was a problem migrating WeekDays!"); } _MigrationStati.Clear(); _MigrationStati.SourceTable = "QOnT->WeekDays, City & CityPrepDays"; _MigrationStati.SourceTable = "ISele->Cities, Area & AreaDaySetting"; _MigrationStati.CurrentSourceRecorderNumber = 0; _MigrationStati.TotalSourceRecorders = QonTCities.Count(); Logger.LogInfo(" Migrationing QOnT->WeekDays, City & CityPrepDays TO ISele->Cities, Area & AreaDaySetting"); MigrateCity cityMigration = new MigrateCity(Logger, iSeleCityRepository, iSeleAreaRepository, iSeleAreaDaySettingRepository); List <AreaDaySetting> areaDaySettings = new List <AreaDaySetting>(); foreach (var city in QonTCities) { _MigrationStati.CurrentSourceRecorderNumber++; Logger.LogInfo($"Migrating city id: {city.Id}"); // Get the day settings for this city now called area List <CityPrepDaysTbl> QOnTCityPrepDays = QOnTCityPrepDaysTbl.FindBy(cpd => cpd.CityId == city.Id).ToList(); areaDaySettings.Clear(); foreach (var CityPrepDay in QOnTCityPrepDays) { Logger.LogDebug($"Migrating QOnTCityPrepDays id: {CityPrepDay.CityPrepDaysId}"); AreaDaySetting areaDaySetting = new AreaDaySetting { AreaDaySettingID = CityPrepDay.CityPrepDaysId, AreaID = CityPrepDay.CityId, PreperationDayOfWeekID = CityPrepDay.PrepDayOfWeekId, DispatchDelayDays = CityPrepDay.DeliveryDelayDays, DeliveryOrder = (short)CityPrepDay.DeliveryOrder, EstimateDeliveryDelay = 0, Notes = String.Format("Migrated from QOnT.City {0:d}", DateTime.UtcNow.Date) }; areaDaySettings.Add(areaDaySetting); //await cityMigration.AddOrUpdateAreaDays(CityPrepDay.CityPrepDaysId, areaDaySetting); } // Add area then areaday then city //await Logger.LogDebug($"Migrating city id: {city.Id} to Areas"); cityMigration.AddOrUpdateArea(city.Id, new Area { AreaID = city.Id, AreaName = city.City, EstimatedDeliveryDelay = 0, NextDispatchDay = 1, NextManufacturingDay = 1, AreaDaySettings = areaDaySettings, Note = string.Format("Migrated from QOnT.City {0:d}", DateTime.UtcNow.Date) }); Logger.LogDebug($"Migrating city id: {city.Id} to Cities"); if (cityMigration.AddOrUpdateCity(city.Id, new City { CityID = city.Id, CityName = city.City, AreaID = city.Id, CountryCode = "ZAF", Notes = String.Format("Migrated from QOnT.City {0:d}", DateTime.UtcNow.Date) })) { _MigrationStati.TargetRecordsInserted++; } else { _MigrationStati.TargetRecordsUpdated++; } // Get the day settings for this city now called area QOnTCityPrepDays.Clear(); areaDaySettings.Clear(); //foreach (var CityPrepDay in QOnTCityPrepDays) //{ // await cityMigration.AddOrUpdateAreaDays(city.ID, new AreaDaySetting // { // AreaDaySettingID = CityPrepDay.CityPrepDaysID, // AreaID = CityPrepDay.CityID, // PreperationDayOfWeekID = CityPrepDay.PrepDayOfWeekID, // DispatchDelayDays = (short)CityPrepDay.DeliveryDelayDays, // DeliveryOrder = (short)CityPrepDay.DeliveryOrder, // EstimateDeliveryDelay = 0, // Notes = String.Format("Migrated from QOnT.City {0:d}", DateTime.UtcNow.Date) // }); //} await UpdateStati(); } /**/ await UpdateStati(); return(success); }
public async Task UpdateStati() { var MyTask = Task.Run(() => MigrationStati = _MigrationStati); await MyTask; }