public static ProjectUpdateBatch CreateNewProjectUpdateBatchForProject(Project project, FirmaSession currentFirmaSession) { Check.Require(project.ProjectUpdateBatches.All(x => x.ProjectUpdateState == ProjectUpdateState.Approved), "Cannot create a new Project Update Batch, there is already an active update for this project."); var projectUpdateBatch = CreateProjectUpdateBatchAndLogTransition(project, currentFirmaSession); // basics & map projectUpdateBatch.CreateFromProject(); // expenditures ProjectFundingSourceExpenditureUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // project expenditures relevant cost types ProjectRelevantCostTypeUpdateModelExtensions.CreateExpendituresRelevantCostTypesFromProject(projectUpdateBatch); ProjectRelevantCostTypeUpdateModelExtensions.CreateBudgetsRelevantCostTypesFromProject(projectUpdateBatch); // expenditures exempt explanation projectUpdateBatch.SyncExpendituresYearsExemptionExplanation(); // Expected Funding ProjectFundingSourceBudgetUpdateModelExtensions.CreateFromProject(projectUpdateBatch); ProjectNoFundingSourceIdentifiedUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // expected performance measures PerformanceMeasureExpectedUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // reported performance measures PerformanceMeasureActualUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // project performance measures exempt reporting years ProjectExemptReportingYearUpdateModelExtensions.CreatePerformanceMeasuresExemptReportingYearsFromProject(projectUpdateBatch); // project exempt reporting years reason projectUpdateBatch.SyncPerformanceMeasureActualYearsExemptionExplanation(); // project locations - detailed ProjectLocationUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // project geospatialArea ProjectGeospatialAreaUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // photos ProjectImageUpdateModelExtensions.CreateFromProject(projectUpdateBatch); projectUpdateBatch.IsPhotosUpdated = false; // external links ProjectExternalLinkUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // notes ProjectNoteUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // organizations ProjectOrganizationUpdateModelExtensions.CreateFromProject(projectUpdateBatch); //Contacts ProjectContactUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // Attachments ProjectAttachmentUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // Custom attributes ProjectCustomAttributeUpdateModelExtensions.CreateFromProject(projectUpdateBatch); //Classifications ProjectClassificationsUpdateModelExtensions.CreateFromProject(projectUpdateBatch); // Technical Assistance Requests - for Idaho TechnicalAssistanceRequestUpdateModelExtensions.CreateFromProject(projectUpdateBatch); return(projectUpdateBatch); }
private static void CommitChangesToProject(this ProjectUpdateBatch projectUpdateBatch, DatabaseEntities databaseEntities) { // basics projectUpdateBatch.ProjectUpdate.CommitBasicsChangesToProject(projectUpdateBatch.Project); // expenditures ProjectFundingSourceExpenditureUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // expected funding ProjectFundingSourceBudgetUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); ProjectNoFundingSourceIdentifiedUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // project exempt reporting years ProjectExemptReportingYearUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); projectUpdateBatch.Project.ExpendituresNote = projectUpdateBatch.ExpendituresNote; // project relevant cost types ProjectRelevantCostTypeUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // only relevant for stages past planning/design if (!projectUpdateBatch.NewStageIsPlanningDesign()) { // reported performance measures PerformanceMeasureActualUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // project exempt reporting years reason projectUpdateBatch.Project.PerformanceMeasureActualYearsExemptionExplanation = projectUpdateBatch.PerformanceMeasureActualYearsExemptionExplanation; } // expected performance measures PerformanceMeasureExpectedUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // project location simple projectUpdateBatch.ProjectUpdate.CommitSimpleLocationToProject(projectUpdateBatch.Project); // project location detailed ProjectLocationUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // project geospatialArea ProjectGeospatialAreaUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); ProjectGeospatialAreaTypeNoteUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // photos ProjectImageUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // external links ProjectExternalLinkUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // notes ProjectNoteUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // Organizations ProjectOrganizationUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // Contacts ProjectContactUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // Attachments ProjectAttachmentUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // Project Custom Attributes ProjectCustomAttributeUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); // Technical Assistance Requests - for Idaho TechnicalAssistanceRequestUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); //Project Classifications ProjectClassificationsUpdateModelExtensions.CommitChangesToProject(projectUpdateBatch, databaseEntities); }