/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="serviceArea"></param> /// <param name="systemId"></param> private static void CopyToInstance(DbAppContext dbContext, ServiceArea oldObject, ref Models.ServiceArea serviceArea, string systemId) { try { if (serviceArea == null) { serviceArea = new Models.ServiceArea(); } if (oldObject.Service_Area_Id <= 0) { return; } serviceArea.Id = oldObject.Service_Area_Id; serviceArea.MinistryServiceAreaID = oldObject.Service_Area_Id; serviceArea.Name = oldObject.Service_Area_Desc.Trim(); // remove " CA" from Service Area Names if (serviceArea.Name.EndsWith(" CA")) { serviceArea.Name = serviceArea.Name.Replace(" CA", ""); } // service area number if (oldObject.Service_Area_Cd != null) { serviceArea.AreaNumber = int.Parse(oldObject.Service_Area_Cd); } // get the district for this service area int tempServiceAreaId = GetServiceAreaId(serviceArea.Name); if (tempServiceAreaId > 0) { District district = dbContext.Districts.AsNoTracking() .FirstOrDefault(x => x.MinistryDistrictID == tempServiceAreaId); if (district != null) { serviceArea.DistrictId = district.Id; } } if (oldObject.FiscalStart != null) { serviceArea.StartDate = DateTime.ParseExact(oldObject.FiscalStart.Trim().Substring(0, 10), "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); } serviceArea.AppCreateUserid = systemId; serviceArea.AppCreateTimestamp = DateTime.UtcNow; serviceArea.AppLastUpdateUserid = systemId; serviceArea.AppLastUpdateTimestamp = DateTime.UtcNow; dbContext.ServiceAreas.Add(serviceArea); } catch (Exception ex) { Debug.WriteLine("***Error*** - Service Area Id: " + oldObject.Service_Area_Id); Debug.WriteLine(ex.Message); throw; } }
/// <summary> /// Map data /// </summary> /// <param name="performContext"></param> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="serviceArea"></param> /// <param name="systemId"></param> private static void CopyToInstance(PerformContext performContext, DbAppContext dbContext, ServiceArea oldObject, ref Models.ServiceArea serviceArea, string systemId) { bool isNew = false; if (serviceArea == null) { isNew = true; serviceArea = new Models.ServiceArea(); } if (oldObject.Service_Area_Id <= 0) { return; } serviceArea.Id = oldObject.Service_Area_Id; serviceArea.MinistryServiceAreaID = oldObject.Service_Area_Id; serviceArea.DistrictId = oldObject.District_Area_Id; serviceArea.Name = oldObject.Service_Area_Desc.Trim(); serviceArea.AreaNumber = oldObject.Service_Area_Cd; District district = dbContext.Districts.FirstOrDefault(x => x.MinistryDistrictID == oldObject.District_Area_Id); if (district == null) { // this means that the District is not in the database // (this happens when the production data does not include district Other than "Lower Mainland" or all the districts) return; } serviceArea.District = district; try { serviceArea.StartDate = DateTime.ParseExact(oldObject.FiscalStart.Trim().Substring(0, 10), "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); } catch { // do nothing } if (isNew) { serviceArea.CreateUserid = systemId; serviceArea.CreateTimestamp = DateTime.UtcNow; dbContext.ServiceAreas.Add(serviceArea); } else { serviceArea.LastUpdateUserid = systemId; serviceArea.LastUpdateTimestamp = DateTime.UtcNow; dbContext.ServiceAreas.Update(serviceArea); } try { dbContext.SaveChangesForImport(); } catch (Exception e) { performContext.WriteLine("*** ERROR With add or update Service Area ***"); performContext.WriteLine(e.ToString()); } }