public string GenerateGeoJsonStringFromEntity(InspektionsRouteGIS inspektionsroute) { if (inspektionsroute == null) { return("{ \"type\": \"FeatureCollection\", \"features\": []}"); } FeatureWithID feature = new FeatureWithID(); IAttributesTable attributes = new AttributesTable(); IList <FeatureWithID> strassenabschnitte = new List <FeatureWithID>(); feature.Id = inspektionsroute.Id.ToString(); feature.Geometry = inspektionsroute.Shape; attributes.AddAttribute(geoJSONAttribute_InspektionsrouteID, inspektionsroute.Id); attributes.AddAttribute(geoJSONAttribute_InspektionsrouteBezeichnung, inspektionsroute.Bezeichnung); attributes.AddAttribute(geoJSONAttribute_IsLocked, inspektionsroute.IsLocked); //GEOJSON PROPERTIES: Strassenabschnitte foreach (InspektionsRtStrAbschnitte inspektionsrouteStrassenabschnitt in inspektionsroute.InspektionsRtStrAbschnitteList) { FeatureWithID featureIrs = new FeatureWithID(); IAttributesTable attributeIrs = new AttributesTable(); IList <AchsenReferenz> achsenreferenzenIrs = achsenReferenzService.GetAchsenReferenzGruppe(inspektionsrouteStrassenabschnitt.StrassenabschnittGIS.ReferenzGruppe.Id); IList <FeatureWithID> achsenreferenzen = new List <FeatureWithID>(); featureIrs.Id = inspektionsrouteStrassenabschnitt.StrassenabschnittGIS.Id.ToString(); featureIrs.Geometry = inspektionsrouteStrassenabschnitt.StrassenabschnittGIS.Shape; foreach (AchsenReferenz achsenreferenz in achsenreferenzenIrs) { FeatureWithID featAr = new FeatureWithID(); IAttributesTable attAr = new AttributesTable(); featAr.Id = achsenreferenz.Id.ToString(); featAr.Geometry = achsenreferenz.Shape; attAr.AddAttribute(geoJSONAttribute_AchsenSegmentId, achsenreferenz.AchsenSegment.Id); featAr.Attributes = attAr; achsenreferenzen.Add(featAr); } attributeIrs.AddAttribute(geoJSONAttribute_childs, achsenreferenzen); featureIrs.Attributes = attributeIrs; strassenabschnitte.Add(featureIrs); } attributes.AddAttribute(geoJSONAttribute_Strassenabschnitte, strassenabschnitte); feature.Attributes = attributes; TextWriter sw = new StringWriter(); GeoJSONWriter.WriteWithID(feature, sw); string geoJSONstring = sw.ToString(); return(geoJSONstring); }
public static InspektionsRouteGIS GetInspektionsRouteGIS(ErfassungsPeriod erfassungsPeriod, string bezeichnung, DateTime?inInspektionBis, StrassenabschnittGIS strassenabschnittGISOne) { var inspektionsRouteGIS = new InspektionsRouteGIS { Bezeichnung = bezeichnung, Bemerkungen = "Bemerkungen", Beschreibung = "Beschreibung", ErfassungsPeriod = erfassungsPeriod, InInspektionBei = bezeichnung.GetInInspektionBei(), InInspektionBis = inInspektionBis, Mandant = erfassungsPeriod.Mandant }; inspektionsRouteGIS.StatusverlaufList = new List <InspektionsRouteStatusverlauf> { new InspektionsRouteStatusverlauf { Status = InspektionsRouteStatus.NeuErstellt, InspektionsRouteGIS = inspektionsRouteGIS, Datum = DateTime.Now } }; inspektionsRouteGIS.InspektionsRtStrAbschnitteList = new List <InspektionsRtStrAbschnitte> { new InspektionsRtStrAbschnitte { InspektionsRouteGIS = inspektionsRouteGIS, StrassenabschnittGIS = strassenabschnittGISOne } }; return(inspektionsRouteGIS); }
public void UnLockInspektionsRoute(InspektionsRouteGIS inspektionsRouteGIS) { foreach (var inspektionsRtStrAbschnitte in inspektionsRouteGIS.InspektionsRtStrAbschnitteList) { inspektionsRtStrAbschnitte.StrassenabschnittGIS.IsLocked = false; } }
private void Historize(InspektionsRouteGIS inspektionsRouteGIS, InspektionsRouteStatus inspektionsRouteStatus) { var inspektionsRouteStatusverlauf = new InspektionsRouteStatusverlauf { Datum = timeService.Now, Status = inspektionsRouteStatus }; Create(inspektionsRouteStatusverlauf); inspektionsRouteGIS.AddInspektionsRouteStatusverlauf(inspektionsRouteStatusverlauf); }
public void HistorizeRouteExportCancelled(InspektionsRouteGIS inspektionsRouteGIS) { Historize(inspektionsRouteGIS, InspektionsRouteStatus.ExportCancelled); }
public void HistorizeRouteImportiert(InspektionsRouteGIS inspektionsRouteGIS) { Historize(inspektionsRouteGIS, InspektionsRouteStatus.RouteImportiert); }
public void HistorizeAktualisiert(InspektionsRouteGIS inspektionsRouteGIS) { Historize(inspektionsRouteGIS, InspektionsRouteStatus.Aktualisiert); }
public void HistorizeNeuErstellt(InspektionsRouteGIS inspektionsRouteGIS) { Historize(inspektionsRouteGIS, InspektionsRouteStatus.NeuErstellt); }
public CheckOutGISStreams CheckOutData(IList <Guid> ids, bool exportBackground) { CheckOutGISStreams checkoutGISStreams = new CheckOutGISStreams(); DTOContainer dtosToExport = new DTOContainer(); Mandant mandant = null; IGeometry bbox = null; foreach (Guid id in ids) { InspektionsRouteGIS inspektionsroute = inspektionsRouteGISService.GetInspektionsRouteById(id); mandant = inspektionsroute.Mandant; if (bbox != null) { bbox = bbox.Union(inspektionsroute.Shape.Envelope).Envelope; } else { bbox = inspektionsroute.Shape.Envelope; } IList <InspektionsRtStrAbschnitte> inspektionsroutenAbschnitte = inspektionsRtStrAbschnitteService.GetCurrentEntities().Where(ira => ira.InspektionsRouteGIS.Id == inspektionsroute.Id).ToList(); inspektionsroutenAbschnitte.OrderBy(ira => ira.Reihenfolge); //Strassenabschnitte foreach (InspektionsRtStrAbschnitte inspektionsroutenAbschnitt in inspektionsroutenAbschnitte) { StrassenabschnittGISDTO strassenabschnittGISDTO = strassenabschnittGISDTOService.GetDTOByID(inspektionsroutenAbschnitt.StrassenabschnittGIS.Id); dtosToExport.DataTransferObjects.Add(strassenabschnittGISDTO); //Zustandsabschnitte foreach (ZustandsabschnittGIS zustandsabschnitt in inspektionsroutenAbschnitt.StrassenabschnittGIS.Zustandsabschnitten) { ZustandsabschnittGISDTO zustandsabschnittGISDTO = zustandsabschnittGISDTOService.GetDTOByID(zustandsabschnitt.Id); dtosToExport.DataTransferObjects.Add(zustandsabschnittGISDTO); foreach (Schadendetail schaden in zustandsabschnitt.Schadendetails) { SchadendetailDTO schadendto = schadendetailDTOService.GetDTOByID(schaden.Id); schadendto.ZustandsabschnittId = zustandsabschnitt.Id; dtosToExport.DataTransferObjects.Add(schadendto); } foreach (Schadengruppe schadengruppe in zustandsabschnitt.Schadengruppen) { SchadengruppeDTO schadengruppedto = schadengruppeDTOService.GetDTOByID(schadengruppe.Id); schadengruppedto.ZustandsabschnittId = zustandsabschnitt.Id; dtosToExport.DataTransferObjects.Add(schadengruppedto); } } } } IGeometry backgroundBbox = null; //Achsensegmente foreach (AchsenSegment achsensegment in achsenSegmentService.GetCurrentBySpatialFilter(bbox).Where(a => a.Mandant == mandant)) { dtosToExport.DataTransferObjects.Add(achsenSegmentDTOService.GetDTOByID(achsensegment.Id)); if (backgroundBbox != null) { backgroundBbox = backgroundBbox.Envelope.Union(achsensegment.Shape.Envelope); } else { backgroundBbox = achsensegment.Shape.Envelope; } } List <Belastungskategorie> belastungskategorien = belastungskategorieService.AlleBelastungskategorie; foreach (Belastungskategorie bk in belastungskategorien) { dtosToExport.DataTransferObjects.Add(belastungskategorieDTOService.GetDTOByID(bk.Id)); } List <MassnahmenvorschlagKatalog> mvklist = massnahmenvorschlagKatalogService.GetCurrentEntities().Where(mvk => mvk.Mandant.Id == mandant.Id && mvk.ErfassungsPeriod.IsClosed == false).ToList(); foreach (MassnahmenvorschlagKatalog mvk in mvklist) { dtosToExport.DataTransferObjects.Add(massnahmenvorschlagKatalogDTOService.GetDTOByID(mvk.Id)); } IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); MemoryStream serializedModelsStream = new MemoryStream(); formatter.Serialize(serializedModelsStream, dtosToExport); serializedModelsStream.Seek(0, 0); checkoutGISStreams.Bezeichnung = "export"; LayerCollection exportLayer = serverConfigurationProvider.ExportLayer; int count = exportLayer.Count; string filepath = serverConfigurationProvider.WMSCacheFolderPath; for (int i = 0; i < count; i++) { ITileSourceFactory fact = null; var layer = exportLayer[i]; switch (layer.ServiceType) { case ServiceType.WMS: fact = new WmsTileSourceFactory(layer); break; case ServiceType.WMTS: fact = new WmtsTileSourceFactory(layer); break; default: break; } TileLoader loader = new TileLoader(fact.GetTileSource()); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); checkoutGISStreams.Tiles.Add(loader.GetTiles(layer, bbox, filepath, serverConfigurationProvider.UseWMSCaching, fact.Format, serverConfigurationProvider.ExportBackgroundMapBuffer, serverConfigurationProvider.ExportTileLimit, download: exportBackground)); stopwatch.Stop(); Loggers.PeformanceLogger.DebugFormat("Layer {0} downloaded in {1}", layer.Name, stopwatch.Elapsed); } checkoutGISStreams.ModelsToExport = serializedModelsStream; checkoutGISStreams.LegendStreams.Add(FileNameConstants.AchsenSegmentLayerLegendFilename, legendService.GetLegendStream("AchsenSegmentLayer")); checkoutGISStreams.LegendStreams.Add(FileNameConstants.StrassenabschnittLayerLegendFilename, legendService.GetLegendStream("StrassenabschnittLayer")); checkoutGISStreams.LegendStreams.Add(FileNameConstants.ZustandsabschnittLayerLegendFilename, legendService.GetLegendStream("ZustandsabschnittLayer")); checkoutGISStreams.LegendStreams.Add(FileNameConstants.ZustandsabschnittLayerTrottoirLegendFilename, legendService.GetLegendStream("ZustandsabschnittLayer_Trottoir")); return(checkoutGISStreams); }