private PartialViewResult DuplicateGrantModificationViewEdit(DuplicateGrantModificationViewModel viewModel, GrantModification grantModificationToDuplicate, List <GrantAllocation> grantAllocations) { var grantModificationStatuses = HttpRequestStorage.DatabaseEntities.GrantModificationStatuses; var grantModificationPurposes = GrantModificationPurpose.All; var viewData = new DuplicateGrantModificationViewData(grantModificationStatuses, grantModificationPurposes, grantModificationToDuplicate, grantAllocations); return(RazorPartialView <DuplicateGrantModification, DuplicateGrantModificationViewData, DuplicateGrantModificationViewModel>(viewData, viewModel)); }
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 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()); }