public static ProjectUpdateBatch CreateNewProjectUpdateBatchForProject(Project project, Person currentPerson)
        {
            var projectUpdateBatch = CreateProjectUpdateBatchAndLogTransition(project, currentPerson);

            // basics & map
            ProjectUpdate.CreateFromProject(projectUpdateBatch);

            // expenditures
            ProjectGrantAllocationExpenditureUpdate.CreateFromProject(projectUpdateBatch);

            // project expenditures exempt reporting years
            ProjectExemptReportingYearUpdate.CreateExpendituresExemptReportingYearsFromProject(projectUpdateBatch);

            // expenditures exempt explanation
            projectUpdateBatch.SyncExpendituresYearsExemptionExplanation();

            // Expected Funding
            ProjectGrantAllocationRequestUpdate.CreateFromProject(projectUpdateBatch);

            // performance measures
            // TODO Neutered Per WA DNR #1446. May decide to bring it back later
            //PerformanceMeasureActualUpdate.CreateFromProject(projectUpdateBatch);

            // project performance measures exempt reporting years
            ProjectExemptReportingYearUpdate.CreatePerformanceMeasuresExemptReportingYearsFromProject(projectUpdateBatch);

            // project exempt reporting years reason
            projectUpdateBatch.SyncPerformanceMeasureActualYearsExemptionExplanation();

            // project locations - detailed
            ProjectLocationUpdate.CreateFromProject(projectUpdateBatch);

            // project priority landscape
            ProjectPriorityLandscapeUpdate.CreateFromProject(projectUpdateBatch);

            // project region
            ProjectRegionUpdate.CreateFromProject(projectUpdateBatch);

            // photos
            ProjectImageUpdate.CreateFromProject(projectUpdateBatch);
            projectUpdateBatch.IsPhotosUpdated = false;

            // external links
            ProjectExternalLinkUpdate.CreateFromProject(projectUpdateBatch);

            // notes
            ProjectNoteUpdate.CreateFromProject(projectUpdateBatch);

            // organizations
            ProjectOrganizationUpdate.CreateFromProject(projectUpdateBatch);

            ProjectPersonUpdate.CreateFromProject(projectUpdateBatch);

            // Documents
            ProjectDocumentUpdate.CreateFromProject(projectUpdateBatch);

            // Custom attributes
            ProjectCustomAttributeUpdate.CreateFromProject(projectUpdateBatch);

            return(projectUpdateBatch);
        }
예제 #2
0
 public static void DeleteProjectDocumentUpdate(this IQueryable <ProjectDocumentUpdate> projectDocumentUpdates, ProjectDocumentUpdate projectDocumentUpdateToDelete)
 {
     DeleteProjectDocumentUpdate(projectDocumentUpdates, new List <ProjectDocumentUpdate> {
         projectDocumentUpdateToDelete
     });
 }