public GrantModificationDetailViewData(Person currentPerson,
                                               Models.GrantModification grantModification,
                                               EntityNotesViewData internalGrantModificationNotesViewData) : base(currentPerson)
        {
            Check.EnsureNotNull(currentPerson);
            Check.EnsureNotNull(grantModification);

            GrantModification = grantModification;
            PageTitle         = grantModification.GrantModificationName;
            BreadCrumbTitle   = $"{Models.FieldDefinition.GrantModification.GetFieldDefinitionLabel()} Detail";
            InternalGrantModificationNotesViewData = internalGrantModificationNotesViewData;
            ParentGrantUrl = SitkaRoute <GrantController> .BuildUrlFromExpression(gc => gc.GrantDetail(grantModification.GrantID));

            BackToParentGrantUrlText       = $"Back to {Models.FieldDefinition.Grant.GetFieldDefinitionLabel()}: {grantModification.Grant.GrantName}";
            EditGrantModificationBasicsUrl = SitkaRoute <GrantModificationController> .BuildUrlFromExpression(gmc => gmc.EditGrantModification(grantModification.PrimaryKey));

            UserHasEditGrantModificationPermissions = new GrantModificationEditAsAdminFeature().HasPermissionByPerson(currentPerson);

            var canEditDocuments = new GrantModificationEditAsAdminFeature().HasPermission(currentPerson, grantModification).HasPermission;

            GrantModificationDetailFileDetailsViewData = new FileDetailsViewData(
                EntityDocument.CreateFromEntityDocument(new List <IEntityDocument>(grantModification.GrantModificationFileResources)),
                SitkaRoute <GrantModificationController> .BuildUrlFromExpression(x => x.NewGrantModificationFiles(grantModification.PrimaryKey)),
                canEditDocuments,
                Models.FieldDefinition.GrantModification
                );

            var relevantGrant = grantModification.Grant;

            GrantAllocationGridSpec    = new GrantAllocationGridSpec(currentPerson, GrantAllocationGridSpec.GrantAllocationGridCreateButtonType.Shown, relevantGrant);
            GrantAllocationGridName    = "grantAllocationsGridName";
            GrantAllocationGridDataUrl = SitkaRoute <GrantController> .BuildUrlFromExpression(tc => tc.GrantAllocationGridJsonDataByGrantModification(grantModification));
        }
        public void UpdateModel(Models.GrantModification grantModification, Person currentPerson, List <GrantModificationGrantModificationPurpose> allGrantModificationGrantModificationPurposes)
        {
            grantModification.GrantModificationName        = GrantModificationName;
            grantModification.GrantModificationStatusID    = GrantModificationStatusID;
            grantModification.GrantModificationStartDate   = GrantModificationStartDate;
            grantModification.GrantModificationEndDate     = GrantModificationEndDate;
            grantModification.GrantModificationDescription = GrantModificationDescription;
            grantModification.GrantID = GrantID;
            grantModification.GrantModificationAmount = GrantModificationAmount;

            if (GrantModificationFileResourceData?[0] != null)
            {
                var fileResources = GrantModificationFileResourceData.Select(fileData =>
                                                                             FileResource.CreateNewFromHttpPostedFile(fileData, currentPerson));

                foreach (var fileResource in fileResources)
                {
                    HttpRequestStorage.DatabaseEntities.FileResources.Add(fileResource);
                    var grantModificationFileResource = new GrantModificationFileResource(grantModification, fileResource, fileResource.OriginalCompleteFileName);
                    grantModification.GrantModificationFileResources.Add(grantModificationFileResource);
                }
            }

            var existingRecordsToClear = HttpRequestStorage.DatabaseEntities.GrantModificationGrantModificationPurposes
                                         .Where(gmgmp => gmgmp.GrantModificationID == grantModification.GrantModificationID).ToList();

            HttpRequestStorage.DatabaseEntities.GrantModificationGrantModificationPurposes.RemoveRange(existingRecordsToClear);

            var grantModificationPurposesUpdated = GrantModificationPurposeIDs.Select(x => new GrantModificationGrantModificationPurpose(grantModification.GrantModificationID, x)).ToList();

            HttpRequestStorage.DatabaseEntities.GrantModificationGrantModificationPurposes.AddRange(grantModificationPurposesUpdated);
        }
Exemplo n.º 3
0
 public DuplicateGrantModificationViewData(IEnumerable <Models.GrantModificationStatus> grantModificationStatuses, List <GrantModificationPurpose> grantModificationPurposes, Models.GrantModification grantModificationToDuplicate, List <Models.GrantAllocation> grantAllocations)
 {
     GrantModificationStatuses    = grantModificationStatuses.ToSelectListWithEmptyFirstRow(x => x.GrantModificationStatusID.ToString(CultureInfo.InvariantCulture), y => y.GrantModificationStatusName);
     GrantModificationPurposes    = grantModificationPurposes.ToSelectList(x => x.GrantModificationPurposeID.ToString(CultureInfo.InvariantCulture), y => y.GrantModificationPurposeName);
     GrantModificationToDuplicate = grantModificationToDuplicate;
     GrantAllocations             = grantAllocations.ToSelectList(x => x.GrantAllocationID.ToString(CultureInfo.InvariantCulture), y => y.GrantAllocationName, true);
 }
 public DuplicateGrantModificationViewModel(Models.GrantModification grantModificationToDuplicate)
 {
     GrantID = grantModificationToDuplicate.GrantID;
     GrantModificationStatusID = grantModificationToDuplicate.GrantModificationStatusID;
     GrantModificationName     = $"{grantModificationToDuplicate.GrantModificationName} - Copy";
     GrantModificationAmount   = 0;
     GrantModificationPurpose  = grantModificationToDuplicate.GrantModificationGrantModificationPurposes.Select(x => x.GrantModificationPurposeID).ToList();
 }
 public void UpdateModel(Models.GrantModification grantModification)
 {
     grantModification.GrantModificationName   = GrantModificationName;
     grantModification.GrantModificationAmount = GrantModificationAmount;
     //because this is only used for duplication we can just create the GM-GMP without merging
     foreach (var purpose in GrantModificationPurpose.Select(purposeID => Models.GrantModificationPurpose.All.Single(x => x.GrantModificationPurposeID == purposeID)))
     {
         GrantModificationGrantModificationPurpose.CreateNewBlank(grantModification, purpose);
     }
 }
 public EditGrantModificationViewModel(Models.GrantModification grantModification)
 {
     GrantModificationName        = grantModification.GrantModificationName;
     GrantModificationStatusID    = grantModification.GrantModificationStatusID;
     GrantModificationStartDate   = grantModification.GrantModificationStartDate;
     GrantModificationEndDate     = grantModification.GrantModificationEndDate;
     GrantModificationDescription = grantModification.GrantModificationDescription;
     GrantModificationAmount      = grantModification.GrantModificationAmount;
     GrantID = grantModification.GrantID;
     GrantModificationPurposeIDs = grantModification.GrantModificationGrantModificationPurposes.Select(x => x.GrantModificationPurposeID).ToList();
 }
Exemplo n.º 7
0
 public GrantModificationJson(Models.GrantModification grantModification)
 {
     GrantModificationID = grantModification.GrantModificationID;
     GrantID             = grantModification.GrantID;
 }