private void CreateStandardsSnapshot(MergeOrganisation mo, Organisation organisation, string replicates) { // Make sure the standards are loaded. _dbContext.Entry(organisation) .Collection(os => os.OrganisationStandards) .Load(); foreach (var os in organisation.OrganisationStandards) { mo.MergeOrganisationStandards.Add(new MergeOrganisationStandard(os, replicates)); // Make sure the versions are loaded. _dbContext.Entry(os) .Collection(osv => osv.OrganisationStandardVersions) .Load(); foreach (var osv in os.OrganisationStandardVersions) { mo.MergeOrganisationStandardVersions.Add(new MergeOrganisationStandardVersion(osv, replicates)); } // Make sure the areas are loaded. _dbContext.Entry(os) .Collection(osv => osv.OrganisationStandardDeliveryAreas) .Load(); foreach (var osda in os.OrganisationStandardDeliveryAreas) { mo.MergeOrganisationStandardDeliveryAreas.Add(new MergeOrganisationStandardDeliveryArea(osda, replicates)); } } }
private MergeOrganisation CreateMergeOrganisations(Organisation primaryOrganisation, Organisation secondaryOrganisation, DateTime secondaryStandardsEffectiveTo, string createdByUser) { var primaryContactName = _dbContext.Contacts.AsNoTracking().FirstOrDefault(c => c.Email == primaryOrganisation.PrimaryContact)?.DisplayName; var secondaryContactName = _dbContext.Contacts.AsNoTracking().FirstOrDefault(c => c.Email == secondaryOrganisation.PrimaryContact)?.DisplayName; var mo = new MergeOrganisation() { PrimaryEndPointAssessorOrganisationId = primaryOrganisation.EndPointAssessorOrganisationId, PrimaryEndPointAssessorOrganisationName = primaryOrganisation.EndPointAssessorName, PrimaryOrganisationEmail = primaryOrganisation.PrimaryContact, PrimaryContactName = primaryContactName, SecondaryEndPointAssessorOrganisationId = secondaryOrganisation.EndPointAssessorOrganisationId, SecondaryEndPointAssessorOrganisationName = secondaryOrganisation.EndPointAssessorName, SecondaryOrganisationEmail = secondaryOrganisation.PrimaryContact, SecondaryContactName = secondaryContactName, SecondaryEPAOEffectiveTo = secondaryStandardsEffectiveTo, CreatedBy = createdByUser, CreatedAt = DateTime.UtcNow, Status = MergeOrganisationStatus.InProgress, }; _dbContext.MergeOrganisations.Add(mo); return(mo); }
private void CreateApplySnapshot(MergeOrganisation mergeOrganisation, string endpointAssessorOrganisationId, string replicates) { var applications = _dbContext.Applications.Include("Organisation").Where(e => e.Organisation.EndPointAssessorOrganisationId == endpointAssessorOrganisationId); foreach (var application in applications) { var mergeApplication = MergeApply.CreateFrom(application); mergeApplication.Replicates = replicates; mergeOrganisation.MergeSecondaryApplications.Add(mergeApplication); } }
private void CompleteMerge(MergeOrganisation mo, string completedByUser) { mo.CompletedBy = completedByUser; mo.CompletedAt = DateTime.UtcNow; mo.Status = MergeOrganisationStatus.Completed; }
private void ApproveMerge(MergeOrganisation mo, string approvedByUser) { mo.ApprovedBy = approvedByUser; mo.ApprovedAt = DateTime.UtcNow; mo.Status = MergeOrganisationStatus.Approved; }