public PartialViewResult DeleteProjectEvaluation(ProjectEvaluationPrimaryKey projectEvaluationCriteriaPrimaryKey)
        {
            var projectEvaluation = projectEvaluationCriteriaPrimaryKey.EntityObject;
            var viewModel         = new ConfirmDialogFormViewModel(projectEvaluation.ProjectEvaluationID);

            return(ViewDeleteProjectEvaluation(projectEvaluation, viewModel));
        }
        public ActionResult DeleteProjectEvaluation(ProjectEvaluationPrimaryKey projectEvaluationCriteriaPrimaryKey, ConfirmDialogFormViewModel viewModel)
        {
            var projectEvaluation = projectEvaluationCriteriaPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewDeleteProjectEvaluation(projectEvaluation, viewModel));
            }

            var projectNameForDeletedEvaluation = projectEvaluation.Project.GetDisplayName();

            projectEvaluation.DeleteFull(HttpRequestStorage.DatabaseEntities);
            SetMessageForDisplay($"Successfully deleted {FieldDefinitionEnum.ProjectEvaluation.ToType().GetFieldDefinitionLabel()} for {FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} '{projectNameForDeletedEvaluation}'!");
            return(new ModalDialogFormJsonResult());
        }
        public ActionResult EditProjectEvaluation(ProjectEvaluationPrimaryKey projectEvaluationPrimaryKey, EditProjectEvaluationViewModel viewModel)
        {
            var projectEvaluation = projectEvaluationPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewEditProjectEvaluation(viewModel, projectEvaluation));
            }


            viewModel.UpdateModel(CurrentFirmaSession, projectEvaluation);

            SetMessageForDisplay($"Successfully updated the {FieldDefinitionEnum.ProjectEvaluation.ToType().GetFieldDefinitionLabel()} for {projectEvaluation.Project.GetDisplayName()}.");

            return(new ModalDialogFormJsonResult());
        }
        public PartialViewResult EditProjectEvaluation(ProjectEvaluationPrimaryKey projectEvaluationPrimaryKey)
        {
            var projectEvaluation = projectEvaluationPrimaryKey.EntityObject;

            if (projectEvaluation.Evaluation.EvaluationStatusID == (int)EvaluationStatusEnum.InProgress)
            {
                var viewModel = new EditProjectEvaluationViewModel(projectEvaluation);
                return(ViewEditProjectEvaluation(viewModel, projectEvaluation));
            }
            else
            {
                var confirmMessage = $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabelPluralized()} can only be evaluated when the {FieldDefinitionEnum.EvaluationStatus.ToType().GetFieldDefinitionLabel()} is {EvaluationStatus.InProgress.EvaluationStatusDisplayName}";

                var viewData  = new ConfirmDialogFormViewData(confirmMessage, false);
                var viewModel = new ConfirmDialogFormViewModel(projectEvaluation.ProjectEvaluationID);
                return(RazorPartialView <ConfirmDialogForm, ConfirmDialogFormViewData, ConfirmDialogFormViewModel>(viewData, viewModel));
            }
        }