예제 #1
0
        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));
        }
예제 #2
0
        public ViewResult Detail()
        {
            var tenant                                = HttpRequestStorage.Tenant;
            var tenantAttribute                       = MultiTenantHelpers.GetTenantAttributeFromCache();
            var editBasicsUrl                         = new SitkaRoute <TenantController>(c => c.EditBasics()).BuildUrlFromExpression();
            var editBoundingBoxUrl                    = new SitkaRoute <TenantController>(c => c.EditBoundingBox()).BuildUrlFromExpression();
            var editClassificationSystemsUrl          = new SitkaRoute <TenantController>(c => c.EditClassificationSystems()).BuildUrlFromExpression();
            var editStylesheetUrl                     = new SitkaRoute <TenantController>(c => c.EditStylesheet()).BuildUrlFromExpression();
            var editTenantLogoUrl                     = new SitkaRoute <TenantController>(c => c.EditTenantLogo()).BuildUrlFromExpression();
            var deleteTenantStyleSheetFileResourceUrl = new SitkaRoute <TenantController>(c => c.DeleteTenantStyleSheetFileResource()).BuildUrlFromExpression();
            var deleteTenantSquareLogoFileResourceUrl = new SitkaRoute <TenantController>(c => c.DeleteTenantSquareLogoFileResource()).BuildUrlFromExpression();
            var deleteTenantBannerLogoFileResourceUrl = new SitkaRoute <TenantController>(c => c.DeleteTenantBannerLogoFileResource()).BuildUrlFromExpression();
            var boundingBoxLayer                      = new LayerGeoJson("Bounding Box",
                                                                         new FeatureCollection(new List <TenantAttribute> {
                tenantAttribute
            }.Select(x => DbGeometryToGeoJsonHelper.FromDbGeometry(x.DefaultBoundingBox)).ToList()),
                                                                         FirmaHelpers.DefaultColorRange[0],
                                                                         0.8m,
                                                                         LayerInitialVisibility.LayerInitialVisibilityEnum.Show);
            var layers = MapInitJson.GetConfiguredGeospatialAreaMapLayers();

            layers.Add(boundingBoxLayer);
            var mapInitJson = new MapInitJson("TenantDetailBoundingBoxMap",
                                              10,
                                              layers,
                                              MapInitJson.GetExternalMapLayers(),
                                              BoundingBox.MakeBoundingBoxFromLayerGeoJsonList(new List <LayerGeoJson> {
                boundingBoxLayer
            }));
            var gridSpec = new DetailGridSpec {
                ObjectNameSingular = "Tenant", ObjectNamePlural = "Tenants", SaveFiltersInCookie = true
            };
            var gridName    = "Tenants";
            var gridDataUrl = new SitkaRoute <TenantController>(c => c.DetailGridJsonData()).BuildUrlFromExpression();
            var costTypes   = HttpRequestStorage.DatabaseEntities.CostTypes.ToList().Count > 0 ? string.Join(", ", HttpRequestStorage.DatabaseEntities.CostTypes.Select(x => x.CostTypeName).ToList()) : null;

            var viewData = new DetailViewData(CurrentFirmaSession,
                                              tenant,
                                              tenantAttribute,
                                              editBasicsUrl,
                                              editBoundingBoxUrl,
                                              deleteTenantStyleSheetFileResourceUrl,
                                              deleteTenantSquareLogoFileResourceUrl,
                                              deleteTenantBannerLogoFileResourceUrl,
                                              EditBoundingBoxFormID,
                                              mapInitJson,
                                              gridSpec,
                                              gridName,
                                              gridDataUrl,
                                              editClassificationSystemsUrl,
                                              editStylesheetUrl,
                                              editTenantLogoUrl,
                                              costTypes);

            return(RazorView <Detail, DetailViewData>(viewData));
        }
예제 #3
0
        private PartialViewResult ViewEditProjectLocationSummaryPoint(Project project, ProjectLocationSimpleViewModel viewModel)
        {
            var layerGeoJsons = MapInitJson.GetConfiguredGeospatialAreaMapLayers();
            var mapInitJson   = new MapInitJson($"project_{project.ProjectID}_EditMap", 10, layerGeoJsons, MapInitJson.GetExternalMapLayers(), BoundingBox.MakeNewDefaultBoundingBox(), false)
            {
                AllowFullScreen = false, DisablePopups = true
            };
            var mapPostUrl = SitkaRoute <ProjectLocationController> .BuildUrlFromExpression(c => c.EditProjectLocationSimple(project, null));

            var mapFormID           = GenerateEditProjectLocationFormID(project.ProjectID);
            var geospatialAreaTypes = HttpRequestStorage.DatabaseEntities.GeospatialAreaTypes.OrderBy(x => x.GeospatialAreaTypeName)
                                      .ToList();
            var viewData = new ProjectLocationSimpleViewData(CurrentFirmaSession, mapInitJson, geospatialAreaTypes, null, mapPostUrl, mapFormID);

            return(RazorPartialView <ProjectLocationSimple, ProjectLocationSimpleViewData, ProjectLocationSimpleViewModel>(viewData, viewModel));
        }
예제 #4
0
        private PartialViewResult ViewEditBoundingBox(EditBoundingBoxViewModel viewModel, TenantAttribute tenantAttribute)
        {
            var boundingBoxLayer = new LayerGeoJson("Bounding Box",
                                                    new FeatureCollection(new List <TenantAttribute> {
                tenantAttribute
            }
                                                                          .Select(x => DbGeometryToGeoJsonHelper.FromDbGeometry(x.DefaultBoundingBox)).ToList()),
                                                    FirmaHelpers.DefaultColorRange[0],
                                                    0.8m,
                                                    LayerInitialVisibility.LayerInitialVisibilityEnum.Show);
            var mapInitJson = new MapInitJson("TenantEditBoundingBoxMap", 10, MapInitJson.GetConfiguredGeospatialAreaMapLayers(), MapInitJson.GetExternalMapLayers(), BoundingBox.MakeBoundingBoxFromLayerGeoJsonList(new List <LayerGeoJson> {
                boundingBoxLayer
            }));
            var editBoundingBoxUrl = new SitkaRoute <TenantController>(c => c.EditBoundingBox()).BuildUrlFromExpression();

            var viewData = new EditBoundingBoxViewData(mapInitJson, editBoundingBoxUrl, EditBoundingBoxFormID);

            return(RazorPartialView <EditBoundingBox, EditBoundingBoxViewData, EditBoundingBoxViewModel>(viewData, viewModel));
        }