/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="project"></param> /// <param name="systemId"></param> /// <param name="maxProjectIndex"></param> private static void CopyToInstance(DbAppContext dbContext, Project oldObject, ref Models.Project project, string systemId, ref int maxProjectIndex) { try { if (project != null) { return; } project = new Models.Project { Id = ++maxProjectIndex }; // *********************************************** // set project properties // *********************************************** string tempProjectNumber = ImportUtility.CleanString(oldObject.Project_Num).ToUpper(); if (!string.IsNullOrEmpty(tempProjectNumber)) { project.ProvincialProjectNumber = tempProjectNumber; } // project name string tempName = ImportUtility.CleanString(oldObject.Job_Desc1).ToUpper(); if (!string.IsNullOrEmpty(tempName)) { tempName = ImportUtility.GetCapitalCase(tempName); project.Name = tempName; } // project information string tempInformation = ImportUtility.CleanString(oldObject.Job_Desc2); if (!string.IsNullOrEmpty(tempInformation)) { tempInformation = ImportUtility.GetUppercaseFirst(tempInformation); project.Information = tempInformation; } // *********************************************** // set service area for the project // *********************************************** ServiceArea serviceArea = dbContext.ServiceAreas.AsNoTracking() .Include(x => x.District) .FirstOrDefault(x => x.MinistryServiceAreaID == oldObject.Service_Area_Id); if (serviceArea == null) { throw new DataException(string.Format("Service Area cannot be null (ProjectIndex: {0}", maxProjectIndex)); } int tempDistrictId = serviceArea.District.Id; project.DistrictId = tempDistrictId; // *********************************************** // default the project to Active // *********************************************** project.Status = "Active"; // *********************************************** // create project // *********************************************** project.AppCreateUserid = systemId; project.AppCreateTimestamp = DateTime.UtcNow; project.AppLastUpdateUserid = systemId; project.AppLastUpdateTimestamp = DateTime.UtcNow; dbContext.Projects.Add(project); } catch (Exception ex) { Debug.WriteLine("***Error*** - Project Name: " + oldObject.Job_Desc1); Debug.WriteLine("***Error*** - Master project Index: " + maxProjectIndex); Debug.WriteLine(ex.Message); throw; } }
/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="instance"></param> /// <param name="systemId"></param> private static void CopyToInstance(DbAppContext dbContext, Project oldObject, ref Models.Project instance, string systemId) { if (oldObject.Project_Id <= 0) { return; } // add the user specified in oldObject.Modified_By and oldObject.Created_By if not there in the database User modifiedBy = ImportUtility.AddUserFromString(dbContext, "", systemId); User createdBy = ImportUtility.AddUserFromString(dbContext, oldObject.Created_By, systemId); if (instance == null) { instance = new Models.Project { Id = oldObject.Project_Id }; try { try { //4 properties instance.ProvincialProjectNumber = oldObject.Project_Num; ServiceArea serviceArea = dbContext.ServiceAreas.FirstOrDefault(x => x.Id == oldObject.Service_Area_Id); District dis = dbContext.Districts.FirstOrDefault(x => x.Id == serviceArea.DistrictId); if (dis != null) { instance.District = dis; instance.DistrictId = dis.Id; } else { // this means that the District Id is not in the database // (happens when the production data does not include district Other than "Lower Mainland" or all the districts) return; } } catch { // do nothing } try { instance.Name = oldObject.Job_Desc1; } catch { // do nothing } try { instance.Information = oldObject.Job_Desc2; } catch { // do nothing } try { instance.Notes = new List <Note>(); Note note = new Note { Text = new string(oldObject.Job_Desc2.Take(2048).ToArray()), IsNoLongerRelevant = true }; instance.Notes.Add(note); } catch { // do nothing } try { instance.CreateTimestamp = DateTime.ParseExact(oldObject.Created_Dt.Trim().Substring(0, 10), "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture); } catch { instance.CreateTimestamp = DateTime.UtcNow; } instance.CreateUserid = createdBy.SmUserId; } catch { // do nothing } dbContext.Projects.Add(instance); } else { instance = dbContext.Projects.First(x => x.Id == oldObject.Project_Id); instance.LastUpdateUserid = modifiedBy.SmUserId; instance.LastUpdateTimestamp = DateTime.UtcNow; dbContext.Projects.Update(instance); } }