public ActionResult Edit(GeospatialAreaPrimaryKey geospatialAreaPrimaryKey, PerformanceMeasurePrimaryKey performanceMeasurePrimaryKey)
        {
            //throw new NotImplementedException("Edit has not been implemented");
            var geospatialArea     = geospatialAreaPrimaryKey.EntityObject;
            var performanceMeasure = performanceMeasurePrimaryKey.EntityObject;
            var viewModel          = new EditPerformanceMeasureTargetsViewModel(geospatialArea, performanceMeasure);

            return(ViewEdit(geospatialArea, performanceMeasure, viewModel));
        }
        private ActionResult ViewEdit(GeospatialArea geospatialArea,
                                      PerformanceMeasure performanceMeasure,
                                      EditPerformanceMeasureTargetsViewModel viewModel)
        {
            var performanceMeasureTargetValueTypes = PerformanceMeasureTargetValueType.All.ToList();
            var reportingPeriods           = performanceMeasure.GetPerformanceMeasureReportingPeriodsFromTargetsAndActualsAndGeospatialAreaTargets(geospatialArea);
            var defaultReportingPeriodYear = reportingPeriods.Any()
                ? reportingPeriods.Max(x => x.PerformanceMeasureReportingPeriodCalendarYear) + 1
                : DateTime.Now.Year;
            var viewDataForAngular = new EditPerformanceMeasureTargetsViewDataForAngular(performanceMeasure,
                                                                                         defaultReportingPeriodYear,
                                                                                         performanceMeasureTargetValueTypes,
                                                                                         true);
            var viewData = new EditPerformanceMeasureTargetsViewData(performanceMeasure, viewDataForAngular, EditPerformanceMeasureTargetsViewData.PerformanceMeasureTargetType.TargetByGeospatialArea);

            return(RazorPartialView <EditPerformanceMeasureTargets, EditPerformanceMeasureTargetsViewData, EditPerformanceMeasureTargetsViewModel>(viewData, viewModel));
        }
        public ActionResult Edit(GeospatialAreaPrimaryKey geospatialAreaPrimaryKey, PerformanceMeasurePrimaryKey performanceMeasurePrimaryKey, EditPerformanceMeasureTargetsViewModel viewModel)
        {
            var geospatialArea     = geospatialAreaPrimaryKey.EntityObject;
            var performanceMeasure = performanceMeasurePrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewEdit(geospatialArea, performanceMeasure, viewModel));
            }

            HttpRequestStorage.DatabaseEntities.PerformanceMeasureReportingPeriods.Load();
            HttpRequestStorage.DatabaseEntities.GeospatialAreaPerformanceMeasureNoTargets.Load();
            HttpRequestStorage.DatabaseEntities.GeospatialAreaPerformanceMeasureFixedTargets.Load();
            HttpRequestStorage.DatabaseEntities.GeospatialAreaPerformanceMeasureReportingPeriodTargets.Load();

            viewModel.UpdateModel(
                geospatialArea,
                performanceMeasure,
                HttpRequestStorage.DatabaseEntities.AllPerformanceMeasureReportingPeriods.Local,
                HttpRequestStorage.DatabaseEntities.AllGeospatialAreaPerformanceMeasureNoTargets.Local,
                HttpRequestStorage.DatabaseEntities.AllGeospatialAreaPerformanceMeasureFixedTargets.Local,
                HttpRequestStorage.DatabaseEntities.AllGeospatialAreaPerformanceMeasureReportingPeriodTargets.Local
                );

            SetMessageForDisplay($"Successfully saved {FieldDefinitionEnum.PerformanceMeasure.ToType().GetFieldDefinitionLabel()} Targets");
            return(new ModalDialogFormJsonResult());
        }