public PartialViewResult EditGrantModification(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;
            var viewModel         = new EditGrantModificationViewModel(grantModification);

            return(ViewEditGrantModification(viewModel, EditGrantModificationType.Existing));
        }
        public PartialViewResult NewGrantModificationFiles(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            Check.EnsureNotNull(grantModificationPrimaryKey.EntityObject);
            var viewModel = new NewFileViewModel();

            return(ViewNewGrantModificationFiles(viewModel));
        }
        public ActionResult NewGrantModificationFiles(GrantModificationPrimaryKey grantModificationPrimaryKey, NewFileViewModel viewModel)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewNewGrantModificationFiles(new NewFileViewModel()));
            }

            viewModel.UpdateModel(grantModification, CurrentPerson);
            SetMessageForDisplay($"Successfully created {viewModel.FileResourcesData.Count} new files(s) for {FieldDefinition.GrantModification.GetFieldDefinitionLabel()} \"{grantModification.GrantModificationName}\".");
            return(new ModalDialogFormJsonResult());
        }
        public PartialViewResult Duplicate(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var grantModificationToDuplicate = grantModificationPrimaryKey.EntityObject;

            Check.EnsureNotNull(grantModificationToDuplicate);

            //get the grant allocations for the  grant mod
            var grantAllocations = grantModificationToDuplicate.GrantAllocations.ToList();

            var viewModel = new DuplicateGrantModificationViewModel(grantModificationToDuplicate);

            return(DuplicateGrantModificationViewEdit(viewModel, grantModificationToDuplicate, grantAllocations));
        }
        public ActionResult NewGrantModificationNoteInternal(GrantModificationPrimaryKey grantModificationPrimaryKey, EditGrantModificationNoteInternalViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewEditNoteInternal(viewModel, EditGrantModificationNoteInternalType.NewNote));
            }
            var grantModification             = grantModificationPrimaryKey.EntityObject;
            var grantModificationNoteInternal = GrantModificationNoteInternal.CreateNewBlank(grantModification, CurrentPerson);

            viewModel.UpdateModel(grantModificationNoteInternal, CurrentPerson, EditGrantModificationNoteInternalType.NewNote);
            HttpRequestStorage.DatabaseEntities.GrantModificationNoteInternals.Add(grantModificationNoteInternal);
            SetMessageForDisplay($"{FieldDefinition.GrantModificationNoteInternal.GetFieldDefinitionLabel()} has been created.");
            return(new ModalDialogFormJsonResult());
        }
        public ActionResult EditGrantModification(GrantModificationPrimaryKey grantModificationPrimaryKey, EditGrantModificationViewModel viewModel)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewEditGrantModification(viewModel, EditGrantModificationType.Existing));
            }

            var allGrantModificationGrantModificationPurposes = HttpRequestStorage.DatabaseEntities.GrantModificationGrantModificationPurposes.ToList();

            viewModel.UpdateModel(grantModification, CurrentPerson, allGrantModificationGrantModificationPurposes);
            SetMessageForDisplay($"{FieldDefinition.GrantModification.GetFieldDefinitionLabel()} \"{grantModification.GrantModificationName}\" has been updated.");
            return(new ModalDialogFormJsonResult());
        }
        public ActionResult DeleteGrantModification(GrantModificationPrimaryKey grantModificationPrimaryKey, ConfirmDialogFormViewModel viewModel)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                return(ViewDeleteGrantModification(grantModification, viewModel));
            }

            var message = $"{FieldDefinition.GrantModification.GetFieldDefinitionLabel()} \"{grantModification.GrantModificationName}\" successfully deleted.";

            grantModification.DeleteFullAndChildless(HttpRequestStorage.DatabaseEntities);
            SetMessageForDisplay(message);
            return(new ModalDialogFormJsonResult());
        }
        public ViewResult GrantModificationDetail(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;
            var userHasEditGrantModificationPermissions = new GrantModificationEditAsAdminFeature().HasPermissionByPerson(CurrentPerson);


            var internalGrantModificationNotesViewData = new EntityNotesViewData(
                EntityNote.CreateFromEntityNote(new List <IEntityNote>(grantModification.GrantModificationNoteInternals)),
                SitkaRoute <GrantModificationController> .BuildUrlFromExpression(x => x.NewGrantModificationNoteInternal(grantModificationPrimaryKey)),
                grantModification.GrantModificationName,
                userHasEditGrantModificationPermissions);

            var viewData = new GrantModificationDetailViewData(CurrentPerson, grantModification, internalGrantModificationNotesViewData);

            return(RazorView <GrantModificationDetail, GrantModificationDetailViewData>(viewData));
        }
        public ActionResult Duplicate(GrantModificationPrimaryKey grantModificationPrimaryKey, DuplicateGrantModificationViewModel viewModel)
        {
            var originalGrantModification = grantModificationPrimaryKey.EntityObject;

            Check.EnsureNotNull(originalGrantModification);

            if (!ModelState.IsValid)
            {
                return(DuplicateGrantModificationViewEdit(viewModel, originalGrantModification, originalGrantModification.GrantAllocations.ToList()));
            }

            var grantModificationStatus = HttpRequestStorage.DatabaseEntities.GrantModificationStatuses.Single(gs => gs.GrantModificationStatusID == viewModel.GrantModificationStatusID);
            var newGrantModification    = GrantModification.CreateNewBlank(originalGrantModification.Grant, grantModificationStatus);

            viewModel.UpdateModel(newGrantModification);
            newGrantModification.GrantModificationStartDate = originalGrantModification.GrantModificationStartDate;
            newGrantModification.GrantModificationEndDate   = originalGrantModification.GrantModificationEndDate;

            if (viewModel.GrantAllocationsToDuplicate != null && viewModel.GrantAllocationsToDuplicate.Any())
            {
                foreach (var allocationID in viewModel.GrantAllocationsToDuplicate)
                {
                    var allocationToCopy =
                        HttpRequestStorage.DatabaseEntities.GrantAllocations.Single(ga =>
                                                                                    ga.GrantAllocationID == allocationID);
                    var newAllocation = GrantAllocation.CreateNewBlank(newGrantModification);
                    newAllocation.GrantAllocationName = allocationToCopy.GrantAllocationName;
                    newAllocation.StartDate           = allocationToCopy.StartDate;
                    newAllocation.EndDate             = allocationToCopy.EndDate;

                    // 10/7/20 TK - not sure we wanna copy these but going for it anyways
                    newAllocation.FederalFundCodeID = allocationToCopy.FederalFundCodeID;
                    newAllocation.OrganizationID    = allocationToCopy.OrganizationID;
                    newAllocation.DNRUplandRegionID = allocationToCopy.DNRUplandRegionID;
                    newAllocation.DivisionID        = allocationToCopy.DivisionID;
                    newAllocation.GrantManagerID    = allocationToCopy.GrantManagerID;

                    // 10/7/20 TK - make sure we setup the budgetLineItems for the new allocation
                    newAllocation.CreateAllGrantAllocationBudgetLineItemsByCostType();
                }
            }

            //need to save changes here, because otherwise the MessageForDisplay will link to an item with a negative ID, causing errors
            HttpRequestStorage.DatabaseEntities.SaveChanges();
            SetMessageForDisplay($"{FieldDefinition.GrantModification.GetFieldDefinitionLabel()} \"{UrlTemplate.MakeHrefString(newGrantModification.GetDetailUrl(), newGrantModification.GrantModificationName)}\" has been created.");
            return(new ModalDialogFormJsonResult());
        }
Beispiel #10
0
        public GridJsonNetJObjectResult <GrantAllocation> GrantAllocationGridJsonDataByGrantModification(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var grantModification = grantModificationPrimaryKey.EntityObject;
            var relevantGrant     = grantModification.Grant;
            // Create button is irrelevant to this data-only usage
            var gridSpec                 = new GrantAllocationGridSpec(CurrentPerson, GrantAllocationGridSpec.GrantAllocationGridCreateButtonType.Hidden, relevantGrant);
            var grantAllocations         = grantModification.GrantAllocations.ToList();
            var gridJsonNetJObjectResult = new GridJsonNetJObjectResult <GrantAllocation>(grantAllocations, gridSpec);

            return(gridJsonNetJObjectResult);
        }
        public PartialViewResult DeleteGrantModification(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var viewModel = new ConfirmDialogFormViewModel(grantModificationPrimaryKey.PrimaryKeyValue);

            return(ViewDeleteGrantModification(grantModificationPrimaryKey.EntityObject, viewModel));
        }
        public PartialViewResult NewGrantModificationNoteInternal(GrantModificationPrimaryKey grantModificationPrimaryKey)
        {
            var viewModel = new EditGrantModificationNoteInternalViewModel();

            return(ViewEditNoteInternal(viewModel, EditGrantModificationNoteInternalType.NewNote));
        }