Beispiel #1
0
        public ProjectUpdateViewData(FirmaSession currentFirmaSession,
                                     ProjectUpdateBatch projectUpdateBatch,
                                     ProjectUpdateStatus projectUpdateStatus,
                                     List <string> validationWarnings,
                                     string currentSectionDisplayName) : base(currentFirmaSession, null)
        {
            IsInstructionsPage  = currentSectionDisplayName.Equals("Instructions", StringComparison.InvariantCultureIgnoreCase);
            InstructionsPageUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.Instructions(projectUpdateBatch.Project));

            ProjectWorkflowSectionGroupings = ProjectWorkflowSectionGrouping.All.OrderBy(x => x.SortOrder).ToList();
            if (!MultiTenantHelpers.TrackAccomplishments())
            {
                ProjectWorkflowSectionGroupings = ProjectWorkflowSectionGroupings.Where(x => x != ProjectWorkflowSectionGrouping.Accomplishments).ToList();
            }
            ProjectUpdateBatch         = projectUpdateBatch;
            Project                    = projectUpdateBatch.Project;
            PrimaryContactPerson       = projectUpdateBatch.Project.GetPrimaryContact();
            EntityName                 = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Update";
            PageTitle                  = $"Update: {Project.GetDisplayName()}";
            ProjectUpdateMyProjectsUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.MyProjectsRequiringAnUpdate());

            ProjectUpdateHistoryUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.History(Project));

            DeleteProjectUpdateUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.DeleteProjectUpdate(Project));

            SubmitUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.Submit(Project));

            ApproveUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.Approve(Project));

            ReturnUrl = SitkaRoute <ProjectUpdateController> .BuildUrlFromExpression(x => x.Return(Project));

            ProvideFeedbackUrl = SitkaRoute <HelpController> .BuildUrlFromExpression(x => x.UpdateFeedback());

            TrainingUrl = SitkaRoute <HomeController> .BuildUrlFromExpression(x => x.Training());

            ShowApproveAndReturnButton = ProjectFundingSourceByCostTypeViewDataHelper.ShowApproveAndReturnButtonForUpdateWorkflow(projectUpdateBatch,
                                                                                                                                  currentFirmaSession);
            IsEditable                        = projectUpdateBatch.InEditableState() || ShowApproveAndReturnButton;
            IsReadyToApprove                  = projectUpdateBatch.IsReadyToApprove();
            AreProjectBasicsValid             = projectUpdateBatch.AreProjectBasicsValid();
            HasCustomAttributesEditableByUser = projectUpdateBatch.Project.HasEditableCustomAttributes(CurrentFirmaSession);

            //Neuter UpdateStatus for non-approver users until we go live with "Show Changes" for all users.
            ProjectUpdateStatus = currentFirmaSession.Person.IsApprover() ? projectUpdateStatus : new ProjectUpdateStatus(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
            HasUpdateStarted    = ModelObjectHelpers.IsRealPrimaryKeyValue(projectUpdateBatch.ProjectUpdateBatchID);

            ValidationWarnings        = validationWarnings;
            CurrentSectionDisplayName = currentSectionDisplayName;
        }
        public EditProjectFundingSourceBudgetByCostTypeUpdateWorkflowContainerViewData(FirmaSession currentFirmaSession,
                                                                                       ProjectUpdateBatch projectUpdateBatch,
                                                                                       EditProjectFundingSourceBudgetByCostTypeViewData.EditProjectFundingSourceBudgetByCostTypeViewDataForAngular viewDataForAngularClass,
                                                                                       ProjectBudgetSummaryViewData projectBudgetSummaryViewData,
                                                                                       ProjectBudgetsAnnualByCostTypeViewData projectBudgetsAnnualByCostTypeViewData,
                                                                                       ProjectUpdateStatus projectUpdateStatus,
                                                                                       EditProjectFundingSourceBudgetByCostTypeValidationResult editProjectFundingSourceBudgetByCostTypeValidationResult,
                                                                                       EditProjectFundingSourceBudgetByCostTypeViewModel viewModelForPartial
                                                                                       ) : base(currentFirmaSession, projectUpdateBatch, projectUpdateStatus, editProjectFundingSourceBudgetByCostTypeValidationResult.GetWarningMessages(), ProjectUpdateSection.Budget.ProjectUpdateSectionDisplayName)
        {
            ProjectBudgetSummaryViewData           = projectBudgetSummaryViewData;
            ProjectBudgetsAnnualByCostTypeViewData = projectBudgetsAnnualByCostTypeViewData;


            bool showApproveAndReturnButton =
                ProjectFundingSourceByCostTypeViewDataHelper.ShowApproveAndReturnButtonForUpdateWorkflow(projectUpdateBatch,
                                                                                                         currentFirmaSession);

            ViewDataForPartial  = new EditProjectFundingSourceBudgetByCostTypeViewData(viewDataForAngularClass, ProjectFundingSourceBudgetViewEnum.Update, projectUpdateBatch, projectUpdateStatus.IsBudgetsUpdated, showApproveAndReturnButton);
            ViewModelForPartial = viewModelForPartial;
        }