public FileResourcePhoto(ProjectImageUpdate projectImageUpdate)
 {
     EntityImageIDAsNullable = projectImageUpdate.ProjectImageID;
     PrimaryKey              = projectImageUpdate.ProjectImageUpdateID;
     FileResourceInfo        = projectImageUpdate.FileResourceInfo;
     DeleteUrl               = projectImageUpdate.GetDeleteUrl();
     IsKeyPhoto              = projectImageUpdate.IsKeyPhoto;
     Caption                 = projectImageUpdate.Caption;
     CaptionOnFullView       = projectImageUpdate.GetCaptionOnFullView();
     CaptionOnGallery        = projectImageUpdate.GetCaptionOnGallery();
     PhotoUrl                = projectImageUpdate.GetPhotoUrl();
     PhotoUrlScaledThumbnail = projectImageUpdate.GetPhotoUrlScaledThumbnail();
     EditUrl                 = projectImageUpdate.GetEditUrl();
     AdditionalCssClasses    = new List <string>();
 }
        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);
        }
 public static void DeleteProjectImageUpdate(this IQueryable <ProjectImageUpdate> projectImageUpdates, ProjectImageUpdate projectImageUpdateToDelete)
 {
     DeleteProjectImageUpdate(projectImageUpdates, new List <ProjectImageUpdate> {
         projectImageUpdateToDelete
     });
 }
 public static string GetPhotoUrlScaledThumbnail(this ProjectImageUpdate projectImageUpdate)
 {
     return(projectImageUpdate.FileResourceInfo.FileResourceUrlScaledThumbnail(150));
 }
 public static string GetPhotoUrl(this ProjectImageUpdate projectImageUpdate)
 {
     return(projectImageUpdate.FileResourceInfo.GetFileResourceUrl());
 }
 public static string GetCaptionOnGallery(this ProjectImageUpdate projectImageUpdate)
 {
     return($"{projectImageUpdate.Caption}\r\n(Timing: {projectImageUpdate.ProjectImageTiming.ProjectImageTimingDisplayName}) {projectImageUpdate.FileResourceInfo.GetFileResourceDataLengthString()}");
 }
        public static string GetCaptionOnFullView(this ProjectImageUpdate projectImageUpdate)
        {
            var creditString = string.IsNullOrWhiteSpace(projectImageUpdate.Credit) ? string.Empty : $"\r\nCredit: {projectImageUpdate.Credit}";

            return($"{projectImageUpdate.GetCaptionOnGallery()}{creditString}");
        }
 public static string GetEditUrl(this ProjectImageUpdate projectImageUpdate)
 {
     return(SitkaRoute <ProjectImageUpdateController> .BuildUrlFromExpression(x => x.Edit(projectImageUpdate.ProjectImageUpdateID)));
 }