Exemplo n.º 1
0
        private static bool TodayIsReminderDayForProjectUpdateConfiguration(
            ProjectUpdateSetting projectUpdateSetting)
        {
            var projectUpdateKickOffDate  = FirmaDateUtilities.LastReportingPeriodStartDateForBackgroundJob(projectUpdateSetting.ProjectUpdateKickOffDate.GetValueOrDefault());
            var projectUpdateCloseOutDate = FirmaDateUtilities.LastReportingPeriodEndDateForBackgroundJob(projectUpdateSetting.ProjectUpdateKickOffDate.GetValueOrDefault(), projectUpdateSetting.ProjectUpdateCloseOutDate.GetValueOrDefault());
            var isReminderDay             = DateTime.Today != projectUpdateKickOffDate && (DateTime.Today - projectUpdateKickOffDate).Days % projectUpdateSetting.ProjectUpdateReminderInterval == 0;
            var isAfterCloseOut           = DateTime.Today.IsDateAfter(projectUpdateCloseOutDate);

            return(isReminderDay && !isAfterCloseOut);
        }
Exemplo n.º 2
0
        public ManageViewData(FirmaSession currentFirmaSession,
                              ProjectFirmaModels.Models.FirmaPage firmaPage,
                              string customNotificationUrl,
                              ProjectUpdateStatusGridSpec projectsRequiringUpdateGridSpec,
                              string projectsRequiringUpdateGridDataUrl,
                              PeopleReceivingReminderGridSpec peopleReceivingReminderGridSpec,
                              string peopleReceivingReminderGridDataUrl, int projectsWithNoContactCount,
                              ProjectUpdateSetting projectUpdateSetting) : base(currentFirmaSession, firmaPage)
        {
            var reportingYear = FirmaDateUtilities.CalculateCurrentYearToUseForRequiredReporting();
            var fieldDefinitionLabelProject = FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel();

            PageTitle     = $"{fieldDefinitionLabelProject} Updates";
            ReportingYear = reportingYear;

            ProjectsRequiringUpdateGridDataUrl = projectsRequiringUpdateGridDataUrl;
            ProjectsRequiringUpdateGridSpec    = projectsRequiringUpdateGridSpec;
            ProjectsRequiringUpdateGridName    = "projectsRequiringAnUpdateGrid";

            PeopleReceivingReminderGridDataUrl = peopleReceivingReminderGridDataUrl;
            ProjectsWithNoContactCount         = projectsWithNoContactCount;

            ProjectUpdateSetting = projectUpdateSetting;

            PeopleReceivingReminderGridSpec = peopleReceivingReminderGridSpec;
            PeopleReceivingReminderGridName = "peopleReceivingAnReminderGrid";

            KickOffIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.KickOffIntroPreview());

            ReminderIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.ReminderIntroPreview());

            CloseOutIntroPreviewUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.CloseOutIntroPreview());

            var getPersonIDFunctionString =
                $"function() {{ return Sitka.{PeopleReceivingReminderGridName}.getValuesFromCheckedGridRows({0}, \'PersonID\', \'PersonIDList\'); }}";

            var modalDialogFormLink = ModalDialogFormHelper.ModalDialogFormLink(
                "<span class=\"glyphicon glyphicon-envelope\" style=\"margin-right:5px\"></span>Send Notification to Selected People",
                customNotificationUrl,
                "Send Notification to Selected People",
                700,
                "Send",
                "Cancel",
                new List <string>(),
                null,
                getPersonIDFunctionString);

            PeopleReceivingReminderGridSpec.ArbitraryHtml = new List <string> {
                modalDialogFormLink.ToString()
            };

            EditProjectUpdateConfigurationUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.EditProjectUpdateConfiguration());
        }
Exemplo n.º 3
0
 public EditProjectUpdateConfigurationViewModel(ProjectUpdateSetting projectUpdateSetting)
 {
     ProjectUpdateKickOffDate          = projectUpdateSetting?.ProjectUpdateKickOffDate;
     ProjectUpdateCloseOutDate         = projectUpdateSetting?.ProjectUpdateCloseOutDate;
     ProjectUpdateReminderInterval     = projectUpdateSetting?.ProjectUpdateReminderInterval;
     EnableProjectUpdateReminders      = projectUpdateSetting?.EnableProjectUpdateReminders;
     SendPeriodicReminders             = projectUpdateSetting?.SendPeriodicReminders;
     SendCloseOutNotification          = projectUpdateSetting?.SendCloseOutNotification;
     ProjectUpdateKickOffIntroContent  = projectUpdateSetting?.ProjectUpdateKickOffIntroContentHtmlString;
     ProjectUpdateReminderIntroContent = projectUpdateSetting?.ProjectUpdateReminderIntroContentHtmlString;
     ProjectUpdateCloseOutIntroContent = projectUpdateSetting?.ProjectUpdateCloseOutIntroContentHtmlString;
     DaysBeforeCloseOutDateForReminder = projectUpdateSetting?.DaysBeforeCloseOutDateForReminder;
 }
Exemplo n.º 4
0
 public void UpdateModel(ProjectUpdateSetting projectUpdateSetting)
 {
     projectUpdateSetting.ProjectUpdateKickOffDate          = ProjectUpdateKickOffDate;
     projectUpdateSetting.ProjectUpdateCloseOutDate         = ProjectUpdateCloseOutDate;
     projectUpdateSetting.ProjectUpdateReminderInterval     = ProjectUpdateReminderInterval;
     projectUpdateSetting.EnableProjectUpdateReminders      = EnableProjectUpdateReminders.GetValueOrDefault(); // will never be null
     projectUpdateSetting.SendPeriodicReminders             = SendPeriodicReminders.GetValueOrDefault();        // will never be null
     projectUpdateSetting.SendCloseOutNotification          = SendCloseOutNotification.GetValueOrDefault();     // will never be null
     projectUpdateSetting.ProjectUpdateKickOffIntroContent  = ProjectUpdateKickOffIntroContent?.ToString();
     projectUpdateSetting.ProjectUpdateReminderIntroContent =
         ProjectUpdateReminderIntroContent?.ToString();
     projectUpdateSetting.ProjectUpdateCloseOutIntroContent =
         ProjectUpdateCloseOutIntroContent?.ToString();
     projectUpdateSetting.DaysBeforeCloseOutDateForReminder = DaysBeforeCloseOutDateForReminder;
 }