private PartialViewResult ViewEditProjectLocationDetailed(Project project, ProjectLocationDetailViewModel viewModel) { var mapDivID = $"project_{project.GetEntityID()}_EditDetailedMap"; var detailedLocationGeoJsonFeatureCollection = project.DetailedLocationToGeoJsonFeatureCollection(true); var editableLayerGeoJson = new LayerGeoJson($"{FieldDefinitionEnum.ProjectLocation.ToType().GetFieldDefinitionLabel()} Detail", detailedLocationGeoJsonFeatureCollection, "red", 1, LayerInitialVisibility.LayerInitialVisibilityEnum.Show); var layers = MapInitJson.GetConfiguredGeospatialAreaMapLayers(); var userCanViewPrivateLocations = CurrentFirmaSession.UserCanViewPrivateLocations(project); layers.AddRange(MapInitJson.GetProjectLocationSimpleMapLayer(project, userCanViewPrivateLocations)); var boundingBox = ProjectLocationSummaryMapInitJson.GetProjectBoundingBox(project, userCanViewPrivateLocations); var mapInitJson = new MapInitJson(mapDivID, 10, layers, MapInitJson.GetExternalMapLayers(), boundingBox) { AllowFullScreen = false, DisablePopups = true }; var mapFormID = GenerateEditProjectLocationFormID(project.GetEntityID()); var uploadGisFileUrl = SitkaRoute <ProjectLocationController> .BuildUrlFromExpression(c => c.ImportGdbFile(project.GetEntityID())); var saveFeatureCollectionUrl = SitkaRoute <ProjectLocationController> .BuildUrlFromExpression(x => x.EditProjectLocationDetailed(project.GetEntityID(), null)); var hasSimpleLocationPoint = project.HasProjectLocationPoint(userCanViewPrivateLocations); var viewData = new ProjectLocationDetailViewData(project.GetEntityID(), mapInitJson, editableLayerGeoJson, uploadGisFileUrl, mapFormID, saveFeatureCollectionUrl, ProjectLocation.FieldLengths.Annotation, hasSimpleLocationPoint, project.LocationIsPrivate); return(RazorPartialView <ProjectLocationDetail, ProjectLocationDetailViewData, ProjectLocationDetailViewModel>(viewData, viewModel)); }
private PartialViewResult ViewEditProjectGeospatialAreas(EditProjectGeospatialAreasViewModel viewModel, Project project, GeospatialAreaType geospatialAreaType) { var userCanViewPrivateLocations = CurrentFirmaSession.UserCanViewPrivateLocations(project); var boundingBox = ProjectLocationSummaryMapInitJson.GetProjectBoundingBox(project, userCanViewPrivateLocations); var layers = MapInitJson.GetGeospatialAreaMapLayersForGeospatialAreaType(geospatialAreaType); layers.AddRange(MapInitJson.GetProjectLocationSimpleAndDetailedMapLayers(project, CurrentFirmaSession)); var mapInitJson = new MapInitJson("projectGeospatialAreaMap", 0, layers, MapInitJson.GetExternalMapLayers(), boundingBox) { AllowFullScreen = false, DisablePopups = true }; var geospatialAreaIDs = viewModel.GeospatialAreaIDs ?? new List <int>(); var geospatialAreasInViewModel = HttpRequestStorage.DatabaseEntities.GeospatialAreas.Where(x => geospatialAreaIDs.Contains(x.GeospatialAreaID)).ToList(); var editProjectGeospatialAreasPostUrl = SitkaRoute <ProjectGeospatialAreaController> .BuildUrlFromExpression(c => c.EditProjectGeospatialAreas(project, geospatialAreaType, null)); var editProjectGeospatialAreasFormID = GetEditProjectGeospatialAreasFormID(); var geospatialAreasContainingProjectSimpleLocation = GeospatialAreaModelExtensions.GetGeospatialAreasContainingProjectLocation(project, geospatialAreaType.GeospatialAreaTypeID).ToList(); var viewData = new EditProjectGeospatialAreasViewData(CurrentFirmaSession, mapInitJson, geospatialAreasInViewModel, editProjectGeospatialAreasPostUrl, editProjectGeospatialAreasFormID, project.HasProjectLocationPoint(userCanViewPrivateLocations), project.HasProjectLocationDetailed(userCanViewPrivateLocations), geospatialAreaType, geospatialAreasContainingProjectSimpleLocation, null); return(RazorPartialView <EditProjectGeospatialAreas, EditProjectGeospatialAreasViewData, EditProjectGeospatialAreasViewModel>(viewData, viewModel)); }
private PartialViewResult ViewEditProjectLocationDetailed(Project project, ProjectLocationDetailViewModel viewModel) { var mapDivID = $"project_{project.EntityID}_EditDetailedMap"; var detailedLocationGeoJsonFeatureCollection = project.ProjectLocations.Where(pl => !pl.ArcGisObjectID.HasValue).ToGeoJsonFeatureCollection(); var editableLayerGeoJson = new LayerGeoJson($"{FieldDefinition.ProjectLocation.GetFieldDefinitionLabel()} Detail", detailedLocationGeoJsonFeatureCollection, "red", 1, LayerInitialVisibility.Show); var arcGisLocationGeoJsonFeatureCollection = project.ProjectLocations.Where(pl => pl.ArcGisObjectID.HasValue).ToGeoJsonFeatureCollection(); var arcGisLayerGeoJson = new LayerGeoJson($"{FieldDefinition.ProjectLocation.GetFieldDefinitionLabel()} Detail", arcGisLocationGeoJsonFeatureCollection, "red", 1, LayerInitialVisibility.Show); var layers = MapInitJson.GetAllGeospatialAreaMapLayers(LayerInitialVisibility.Show); layers.AddRange(MapInitJson.GetProjectLocationSimpleMapLayer(project)); var boundingBox = ProjectLocationSummaryMapInitJson.GetProjectBoundingBox(project); var mapInitJson = new MapInitJson(mapDivID, 10, layers, boundingBox) { AllowFullScreen = false, DisablePopups = true }; var mapFormID = GenerateEditProjectLocationFormID(project.EntityID); var uploadGisFileUrl = SitkaRoute <ProjectLocationController> .BuildUrlFromExpression(c => c.ImportGdbFile(project.EntityID)); var saveFeatureCollectionUrl = SitkaRoute <ProjectLocationController> .BuildUrlFromExpression(x => x.EditProjectLocationDetailed(project.EntityID, null)); var hasSimpleLocationPoint = project.ProjectLocationPoint != null; var viewData = new ProjectLocationDetailViewData(project.EntityID, mapInitJson, editableLayerGeoJson, arcGisLayerGeoJson, uploadGisFileUrl, mapFormID, saveFeatureCollectionUrl, ProjectLocation.FieldLengths.ProjectLocationNotes, hasSimpleLocationPoint); return(RazorPartialView <ProjectLocationDetail, ProjectLocationDetailViewData, ProjectLocationDetailViewModel>(viewData, viewModel)); }
public ForwardLookingFactSheetViewData(Person currentPerson, Models.Project project, ProjectLocationSummaryMapInitJson projectLocationSummaryMapInitJson, GoogleChartJson googleChartJson, List <GooglePieChartSlice> grantAllocationRequestAmountGooglePieChartSlices, Models.FirmaPage firmaPageFactSheetCustomText) : base(currentPerson, project) { PageTitle = project.DisplayName; BreadCrumbTitle = "Fact Sheet"; PerformanceMeasureExpectedValues = project.PerformanceMeasureExpecteds.GroupBy(x => x.PerformanceMeasure, new HavePrimaryKeyComparer <Models.PerformanceMeasure>()) .OrderBy(x => x.Key.PerformanceMeasureSortOrder).ThenBy(x => x.Key.PerformanceMeasureDisplayName).ToList(); KeyPhoto = project.KeyPhoto; ProjectImagesExceptKeyPhotoGroupedByTiming = project.ProjectImages.Where(x => !x.IsKeyPhoto && x.ProjectImageTiming != ProjectImageTiming.Unknown && !x.ExcludeFromFactSheet) .GroupBy(x => x.ProjectImageTiming).OrderBy(x => x.Key.SortOrder).ToList(); ProjectImagesPerTimingGroup = ProjectImagesExceptKeyPhotoGroupedByTiming.Count == 1 ? 6 : 2; Classifications = project.ProjectClassifications.Select(x => x.Classification).ToList().SortByOrderThenName().ToList(); ProjectLocationSummaryMapInitJson = projectLocationSummaryMapInitJson; GoogleChartJson = googleChartJson; GrantAllocationRequestAmountGooglePieChartSlices = grantAllocationRequestAmountGooglePieChartSlices; //Dynamically resize chart based on how much space the legend requires CalculatedChartHeight = 350 - (GrantAllocationRequestAmountGooglePieChartSlices.Count <= 2 ? GrantAllocationRequestAmountGooglePieChartSlices.Count * 24 : GrantAllocationRequestAmountGooglePieChartSlices.Count * 20); FactSheetPdfUrl = SitkaRoute <ProjectController> .BuildUrlFromExpression(c => c.FactSheetPdf(project)); if (project.ProjectType == null) { TaxonomyColor = "blue"; } else { switch (MultiTenantHelpers.GetTaxonomyLevel().ToEnum) { case TaxonomyLevelEnum.Leaf: TaxonomyColor = project.ProjectType.ThemeColor; break; case TaxonomyLevelEnum.Branch: TaxonomyColor = project.ProjectType.TaxonomyBranch.ThemeColor; break; case TaxonomyLevelEnum.Trunk: TaxonomyColor = project.ProjectType.TaxonomyBranch.TaxonomyTrunk.ThemeColor; break; } } ProjectTypeName = project.ProjectType == null ? $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Taxonomy Not Set" : project.ProjectType.DisplayName; TaxonomyBranchName = project.ProjectType == null ? $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Taxonomy Not Set" : project.ProjectType.TaxonomyBranch.DisplayName; ProjectTypeDisplayName = Models.FieldDefinition.ProjectType.GetFieldDefinitionLabel(); EstimatedTotalCost = Project.EstimatedTotalCost.HasValue ? Project.EstimatedTotalCost.ToStringCurrency() : ""; NoGrantAllocationIdentified = project.GetNoGrantAllocationIdentifiedAmount() != null?Project.GetNoGrantAllocationIdentifiedAmount().ToStringCurrency() : ""; GrandAllocation = project.ProjectGrantAllocationRequests.Any() ? project.ProjectGrantAllocationRequests.Sum(x => x.TotalAmount).ToStringCurrency() : ViewUtilities.Unknown; CustomFactSheetTextViewData = new ViewPageContentViewData(firmaPageFactSheetCustomText, false); }
public ProjectLocationSummaryViewData(IProject project, ProjectLocationSummaryMapInitJson projectLocationSummaryMapInitJson, List <Models.PriorityLandscape> priorityLandscapes, List <Models.DNRUplandRegion> regions, string noRegionsExplanation, string noPriorityLandscapesExplanation) { ProjectLocationNotes = project.ProjectLocationNotes; ProjectLocationSummaryMapInitJson = projectLocationSummaryMapInitJson; PriorityLandscapes = priorityLandscapes; DNRUplandRegions = regions; NoRegionsExplanation = noRegionsExplanation; HasLocationNotes = !string.IsNullOrWhiteSpace(project.ProjectLocationNotes); HasLocationInformation = project.ProjectLocationSimpleType != ProjectLocationSimpleType.None; NoPriorityLandscapesExplanation = noPriorityLandscapesExplanation; }
public ProjectLocationSummaryViewData(IProject project, ProjectLocationSummaryMapInitJson projectLocationSummaryMapInitJson, Dictionary <int, string> dictionaryGeoNotes, List <GeospatialAreaType> geospatialAreaTypes, List <ProjectFirmaModels.Models.GeospatialArea> geospatialAreas, bool locationIsPrivate, bool userHasEditProjectPermissions) { ProjectLocationNotes = project.ProjectLocationNotes; ProjectLocationSummaryMapInitJson = projectLocationSummaryMapInitJson; GeospatialAreas = geospatialAreas; HasLocationNotes = !string.IsNullOrWhiteSpace(project.ProjectLocationNotes); HasLocationInformation = project.ProjectLocationSimpleType != ProjectLocationSimpleType.None; DictionaryGeoNotes = dictionaryGeoNotes; GeospatialAreaTypes = geospatialAreaTypes; LocationIsPrivate = locationIsPrivate; UserHasEditProjectPermissions = userHasEditProjectPermissions; FieldDefinitionForProject = FieldDefinitionEnum.Project.ToType(); }
private PartialViewResult ViewEditProjectPriorityLandscapes(EditProjectPriorityLandscapesViewModel viewModel, Project project) { var boundingBox = ProjectLocationSummaryMapInitJson.GetProjectBoundingBox(project); var layers = MapInitJson.GetPriorityLandscapeMapLayers(LayerInitialVisibility.Show); layers.AddRange(MapInitJson.GetProjectLocationSimpleAndDetailedMapLayers(project)); var mapInitJson = new MapInitJson("projectPriorityLandscapeMap", 0, layers, boundingBox) { AllowFullScreen = false, DisablePopups = true }; var priorityLandscapeIDs = viewModel.PriorityLandscapeIDs ?? new List <int>(); var priorityLandscapesInViewModel = HttpRequestStorage.DatabaseEntities.PriorityLandscapes.Where(x => priorityLandscapeIDs.Contains(x.PriorityLandscapeID)).ToList(); var editProjectPriorityLandscapesPostUrl = SitkaRoute <ProjectPriorityLandscapeController> .BuildUrlFromExpression(c => c.EditProjectPriorityLandscapes(project, null)); var editProjectPriorityLandscapesFormID = GetEditProjectPriorityLandscapesFormID(); var viewData = new EditProjectPriorityLandscapesViewData(CurrentPerson, mapInitJson, priorityLandscapesInViewModel, editProjectPriorityLandscapesPostUrl, editProjectPriorityLandscapesFormID, project.HasProjectLocationPoint, project.HasProjectLocationDetail); return(RazorPartialView <EditProjectPriorityLandscapes, EditProjectPriorityLandscapesViewData, EditProjectPriorityLandscapesViewModel>(viewData, viewModel)); }
public BackwardLookingFactSheetViewData(FirmaSession currentFirmaSession, ProjectFirmaModels.Models.Project project, ProjectLocationSummaryMapInitJson projectLocationSummaryMapInitJson, GoogleChartJson projectFactSheetGoogleChart, List <GooglePieChartSlice> expenditureGooglePieChartSlices, List <string> chartColorRange, ProjectFirmaModels.Models.FirmaPage firmaPageFactSheet, List <TechnicalAssistanceParameter> technicalAssistanceParameters, bool withCustomAttributes, ProjectController.FactSheetPdfEnum factSheetPdfEnum) : base(currentFirmaSession, project) { PageTitle = project.GetDisplayName(); BreadCrumbTitle = "Fact Sheet"; EstimatedTotalCost = Project.GetEstimatedTotalRegardlessOfFundingType().HasValue ? Project.GetEstimatedTotalRegardlessOfFundingType().ToStringCurrency() : ""; NoFundingSourceIdentified = project.GetNoFundingSourceIdentifiedAmount() != null?Project.GetNoFundingSourceIdentifiedAmount().ToStringCurrency() : ""; ProjectedFunding = Project.GetProjectedFunding().ToStringCurrency(); PerformanceMeasureReportedValues = project.GetPerformanceMeasureReportedValues().GroupBy(x => x.PerformanceMeasure).OrderBy(x => x.Key.PerformanceMeasureSortOrder).ThenBy(x => x.Key.PerformanceMeasureDisplayName).ToList(); PerformanceMeasureExpectedValues = project.PerformanceMeasureExpecteds.GroupBy(x => x.PerformanceMeasure, new HavePrimaryKeyComparer <ProjectFirmaModels.Models.PerformanceMeasure>()) .OrderBy(x => x.Key.PerformanceMeasureSortOrder).ThenBy(x => x.Key.PerformanceMeasureDisplayName).ToList(); ShowExpectedPerformanceMeasures = MultiTenantHelpers.GetTenantAttributeFromCache().ShowExpectedPerformanceMeasuresOnFactSheet&& (project.ProjectStage == ProjectStage.Implementation || project.ProjectStage == ProjectStage.PostImplementation) && !PerformanceMeasureReportedValues.Any(); ChartID = $"fundingChartForProject{project.ProjectID}"; KeyPhoto = project.GetKeyPhoto(); ProjectImagesExceptKeyPhotoGroupedByTiming = project.ProjectImages.Where(x => !x.IsKeyPhoto && x.ProjectImageTiming != ProjectImageTiming.Unknown && !x.ExcludeFromFactSheet) .GroupBy(x => x.ProjectImageTiming) .OrderBy(x => x.Key.SortOrder) .ToList(); ProjectImagesPerTimingGroup = ProjectImagesExceptKeyPhotoGroupedByTiming.Count == 1 ? 6 : 2; Classifications = project.ProjectClassifications.Select(x => x.Classification).ToList().SortByOrderThenName().ToList(); ProjectLocationSummaryMapInitJson = projectLocationSummaryMapInitJson; GoogleChartJson = projectFactSheetGoogleChart; ExpenditureGooglePieChartSlices = expenditureGooglePieChartSlices; ChartColorRange = chartColorRange; //Dynamically resize chart based on how much space the legend requires CalculatedChartHeight = 350 - ExpenditureGooglePieChartSlices.Count * 19; FactSheetPdfUrl = SitkaRoute <ProjectController> .BuildUrlFromExpression(c => c.FactSheetPdf(project)); FactSheetWithCustomAttributesPdfUrl = SitkaRoute <ProjectController> .BuildUrlFromExpression(c => c.FactSheetWithCustomAttributesPdf(project)); if (project.GetTaxonomyLeaf() == null) { TaxonomyColor = "blue"; } else { switch (MultiTenantHelpers.GetTaxonomyLevel().ToEnum) { case TaxonomyLevelEnum.Leaf: TaxonomyColor = project.GetTaxonomyLeaf().ThemeColor; break; case TaxonomyLevelEnum.Branch: TaxonomyColor = project.GetTaxonomyLeaf().TaxonomyBranch.ThemeColor; break; case TaxonomyLevelEnum.Trunk: TaxonomyColor = project.GetTaxonomyLeaf().TaxonomyBranch.TaxonomyTrunk.ThemeColor; break; } } TaxonomyLeafName = project.GetTaxonomyLeaf() == null ? $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Taxonomy Not Set" : project.GetTaxonomyLeaf().GetDisplayName(); TaxonomyBranchName = project.GetTaxonomyLeaf() == null ? $"{FieldDefinitionEnum.Project.ToType().GetFieldDefinitionLabel()} Taxonomy Not Set" : project.GetTaxonomyLeaf().TaxonomyBranch.GetDisplayName(); TaxonomyLeafDisplayName = FieldDefinitionEnum.TaxonomyLeaf.ToType().GetFieldDefinitionLabel(); PrimaryContactPerson = project.GetPrimaryContact(); CustomFactSheetPageTextViewData = new ViewPageContentViewData(firmaPageFactSheet, false); TechnicalAssistanceParameters = technicalAssistanceParameters; TechnicalAssistanceRequests = project.TechnicalAssistanceRequests.ToList(); ViewableProjectCustomAttributeTypes = HttpRequestStorage.DatabaseEntities.ProjectCustomAttributeTypes.ToList().Where(x => x.HasViewPermission(currentFirmaSession) && x.IsViewableOnFactSheet).ToList(); ViewableProjectCustomAttributes = project.ProjectCustomAttributes.Where(x => x.ProjectCustomAttributeType.HasViewPermission(currentFirmaSession) && ViewableProjectCustomAttributeTypes.Contains(x.ProjectCustomAttributeType)).ToList(); WithCustomAttributes = withCustomAttributes; LastUpdated = project.LastUpdatedDate; FactSheetPdfEnum = factSheetPdfEnum; // No delay loading our fake image by default int fakeImageDelayInMilliseconds = 0; // When set the page is being rendered for PDF if (factSheetPdfEnum == ProjectController.FactSheetPdfEnum.Pdf) { // If we are printing for PDF, we have a fake 1x1 transparent image that we deliberately take time to load. This causes Headless Chrome // to delay printing the page until the map is ready to be viewed. // // We hope that 4 seconds is enough to allow the mapping components to load. Increase if they don't render properly. fakeImageDelayInMilliseconds = ForwardLookingFactSheetViewData.FactSheetPdfEmptyImageLoadDelayInMilliseconds; } FakeImageWithDelayUrl = new SitkaRoute <FakeImageController>(c => c.ReturnEmptyImageAfterDelayInMilliseconds(fakeImageDelayInMilliseconds)).BuildAbsoluteUrlHttpsFromExpression(); ProjectLocationIsProvided = project.ProjectLocationPoint != null || project.ProjectLocations.Any(); }
public BackwardLookingFactSheetViewData(Person currentPerson, Models.Project project, ProjectLocationSummaryMapInitJson projectLocationSummaryMapInitJson, GoogleChartJson projectFactSheetGoogleChart, List <GooglePieChartSlice> expenditureGooglePieChartSlices, List <string> chartColorRange, Models.FirmaPage firmaPageFactSheet) : base(currentPerson, project) { PageTitle = project.DisplayName; BreadCrumbTitle = "Fact Sheet"; EstimatedTotalCost = Project.EstimatedTotalCost.HasValue ? Project.EstimatedTotalCost.ToStringCurrency() : ""; NoGrantAllocationIdentified = project.GetNoGrantAllocationIdentifiedAmount() != null?Project.GetNoGrantAllocationIdentifiedAmount().ToStringCurrency() : ""; TotalFunding = Project.GetTotalFunding() != null?Project.GetTotalFunding().ToStringCurrency() : ""; const bool userCanAddPhotosToThisProject = false; var newPhotoForProjectUrl = string.Empty; var selectKeyImageUrl = string.Empty; var galleryName = $"ProjectImage{project.ProjectID}"; ImageGalleryViewData = new ImageGalleryViewData(currentPerson, galleryName, project.ProjectImages, userCanAddPhotosToThisProject, newPhotoForProjectUrl, selectKeyImageUrl, true, x => x.CaptionOnFullView, "Photo"); PerformanceMeasureReportedValues = project.GetReportedPerformanceMeasures().GroupBy(x => x.PerformanceMeasure).OrderBy(x => x.Key.PerformanceMeasureSortOrder).ThenBy(x => x.Key.PerformanceMeasureDisplayName).ToList(); ChartID = $"fundingChartForProject{project.ProjectID}"; KeyPhoto = project.KeyPhoto; ProjectImagesExceptKeyPhotoGroupedByTiming = project.ProjectImages.Where(x => !x.IsKeyPhoto && x.ProjectImageTiming != ProjectImageTiming.Unknown && !x.ExcludeFromFactSheet) .GroupBy(x => x.ProjectImageTiming) .OrderBy(x => x.Key.SortOrder) .ToList(); ProjectImagesPerTimingGroup = ProjectImagesExceptKeyPhotoGroupedByTiming.Count == 1 ? 6 : 2; Classifications = project.ProjectClassifications.Select(x => x.Classification).ToList().SortByOrderThenName().ToList(); ProjectLocationSummaryMapInitJson = projectLocationSummaryMapInitJson; GoogleChartJson = projectFactSheetGoogleChart; ExpenditureGooglePieChartSlices = expenditureGooglePieChartSlices; ChartColorRange = chartColorRange; //Dynamically resize chart based on how much space the legend requires CalculatedChartHeight = 350 - ExpenditureGooglePieChartSlices.Count * 19; FactSheetPdfUrl = SitkaRoute <ProjectController> .BuildUrlFromExpression(c => c.FactSheetPdf(project)); if (project.ProjectType == null) { TaxonomyColor = "blue"; } else { switch (MultiTenantHelpers.GetTaxonomyLevel().ToEnum) { case TaxonomyLevelEnum.Leaf: TaxonomyColor = project.ProjectType.ThemeColor; break; case TaxonomyLevelEnum.Branch: TaxonomyColor = project.ProjectType.TaxonomyBranch.ThemeColor; break; case TaxonomyLevelEnum.Trunk: TaxonomyColor = project.ProjectType.TaxonomyBranch.TaxonomyTrunk.ThemeColor; break; } } ProjectTypeName = project.ProjectType == null ? $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Taxonomy Not Set" : project.ProjectType.DisplayName; TaxonomyBranchName = project.ProjectType == null ? $"{Models.FieldDefinition.Project.GetFieldDefinitionLabel()} Taxonomy Not Set" : project.ProjectType.TaxonomyBranch.DisplayName; ProjectTypeDisplayName = Models.FieldDefinition.ProjectType.GetFieldDefinitionLabel(); PrimaryContactPerson = project.GetPrimaryContact(); CustomFactSheetPageTextViewData = new ViewPageContentViewData(firmaPageFactSheet, false); }