public PartialViewResult EditPerformanceMeasureRichText(
            PerformanceMeasurePrimaryKey performanceMeasurePrimaryKey,
            EditRtfContent.PerformanceMeasureRichTextType performanceMeasureRichTextType)
        {
            var        performanceMeasure = performanceMeasurePrimaryKey.EntityObject;
            HtmlString rtfContent;

            switch (performanceMeasureRichTextType)
            {
            case EditRtfContent.PerformanceMeasureRichTextType.CriticalDefinitions:
                rtfContent = performanceMeasure.CriticalDefinitionsHtmlString;
                break;

            case EditRtfContent.PerformanceMeasureRichTextType.ProjectReporting:
                rtfContent = performanceMeasure.ProjectReportingHtmlString;
                break;

            case EditRtfContent.PerformanceMeasureRichTextType.Importance:
                rtfContent = performanceMeasure.ImportanceHtmlString;
                break;

            case EditRtfContent.PerformanceMeasureRichTextType.AdditionalInformation:
                rtfContent = performanceMeasure.AdditionalInformationHtmlString;
                break;

            default:
                throw new ArgumentOutOfRangeException(
                          $"Invalid PerformanceMeasure Rich Text Content Type: '{performanceMeasureRichTextType}'");
            }

            var viewModel = new EditRtfContentViewModel(rtfContent);

            return(ViewEditGuidance(viewModel, performanceMeasureRichTextType));
        }
        public ActionResult EditPerformanceMeasureRichText(PerformanceMeasurePrimaryKey performanceMeasurePrimaryKey,
                                                           EditRtfContent.PerformanceMeasureRichTextType performanceMeasureRichTextType,
                                                           EditRtfContentViewModel viewModel)
        {
            var performanceMeasure = performanceMeasurePrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewEditGuidance(viewModel, performanceMeasureRichTextType));
            }
            viewModel.UpdateModel(performanceMeasure, performanceMeasureRichTextType);
            return(new ModalDialogFormJsonResult());
        }
        private PartialViewResult ViewEditGuidance(EditRtfContentViewModel viewModel, EditRtfContent.PerformanceMeasureRichTextType performanceMeasureRichTextType)
        {
            EditRtfContentViewData viewData;

            switch (performanceMeasureRichTextType)
            {
            case EditRtfContent.PerformanceMeasureRichTextType.SimpleDescription:
            case EditRtfContent.PerformanceMeasureRichTextType.CriticalDefinitions:
            case EditRtfContent.PerformanceMeasureRichTextType.AccountingPeriodAndScale:
            case EditRtfContent.PerformanceMeasureRichTextType.ProjectReporting:
                viewData = new EditRtfContentViewData(CkEditorExtension.CkEditorToolbar.Minimal, null);
                break;

            default:
                throw new ArgumentOutOfRangeException($"Unknown GuidanceType: {performanceMeasureRichTextType}");
            }
            return(RazorPartialView <EditRtfContent, EditRtfContentViewData, EditRtfContentViewModel>(viewData, viewModel));
        }