private StrassenabschnittGISModel ValidateStrassenabschnittGisModelGeometry(StrassenabschnittGISModel strassenabschnittGisModel) { if (ModelState.IsValid) { strassenabschnittGisModel = (StrassenabschnittGISModel)geoJSONParseService.GenerateModelFromGeoJsonString(strassenabschnittGisModel); if (!abschnittGisValidationService.ValidateOverlap(strassenabschnittGisModel)) { ModelState.AddModelError( ExpressionHelper.GetPropertyName <IAbschnittGISModelBase, string>(m => m.FeatureGeoJSONString), localizationService.GetLocalizedError(ValidationError.GeometryOverlaps)); } if (!strassenabschnittGISService.ZustandsabschnittWithinStrassenabschnitt(strassenabschnittGisModel)) { ModelState.AddModelError( ExpressionHelper.GetPropertyName <IAbschnittGISModelBase, string>(m => m.FeatureGeoJSONString), localizationService.GetLocalizedError(ValidationError.ZustandAbschnittNotWithin)); } if (!strassenabschnittGISService.IsStrassenabschnittOnAchsensegment(strassenabschnittGisModel)) { ModelState.AddModelError( ExpressionHelper.GetPropertyName <IAbschnittGISModelBase, string>(m => m.FeatureGeoJSONString), localizationService.GetLocalizedError(ValidationError.GeometryNotOnAchsenSegment)); } } return(strassenabschnittGisModel); }
public ActionResult GetStrassenabschnittByID(string id) { try { StrassenabschnittGISModel strassenabschnitt = strassenabschnittGISService.GetById(Guid.Parse(id)); return(Content(strassenabschnitt.FeatureGeoJSONString, "application/json")); } catch (Exception exc) { return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json")); } }
public ActionResult GetStrassenabschnittAt(double x, double y, double tolerance) { try { StrassenabschnittGISModel strassenabschnitt = strassenabschnittGISService.GetCurrentStrassenabschnittAt(x, y, tolerance); return(Content(strassenabschnitt.FeatureGeoJSONString, "application/json")); } catch (Exception exc) { return(Content(GeoJSONStrings.GeoJSONFailure(exc.Message), "application/json")); } }
public ActionResult Update(StrassenabschnittGISModel strassenabschnittGisModel) { strassenabschnittGisModel = ValidateStrassenabschnittGisModelGeometry(strassenabschnittGisModel); if (ModelState.IsValid) { strassenabschnittGISService.UpdateEntity(strassenabschnittGisModel); inspektionsRouteGISService.UpdateInspektionsroutenGeometry(strassenabschnittGisModel); return(new EmsgEmptyResult()); } PrepareViewBag(); return(PartialView("EditStrassenabschnitt", strassenabschnittGisModel)); }
public ActionResult Insert(StrassenabschnittGISModel strassenabschnittGisModel) { strassenabschnittGisModel = ValidateStrassenabschnittGisModelGeometry(strassenabschnittGisModel); if (ModelState.IsValid) { strassenabschnittGISService.CreateEntity(strassenabschnittGisModel); return(new EmsgEmptyResult()); } PrepareViewBag(true); return(PartialView("EditStrassenabschnitt", strassenabschnittGisModel)); }
public ActionResult ApplyInsert(StrassenabschnittGISModel strassenabschnittGisModel) { var isInNewMode = true; strassenabschnittGisModel = ValidateStrassenabschnittGisModelGeometry(strassenabschnittGisModel); if (ModelState.IsValid) { strassenabschnittGisModel = strassenabschnittGISService.CreateEntity(strassenabschnittGisModel); ModelState.Clear(); isInNewMode = false; } PrepareViewBag(isInNewMode); return(PartialView("EditStrassenabschnitt", strassenabschnittGisModel)); }
public void UpdateInspektionsroutenGeometry(StrassenabschnittGISModel changedStrassenabschnitt) { var inspektionsrouten = this.GetCurrentEntities().Where(ir => ir.InspektionsRtStrAbschnitteList.Where(irs => irs.StrassenabschnittGIS.Id == changedStrassenabschnitt.Id).Count() > 0); if (inspektionsrouten.Count() > 0) { IGeometry shape = null; var inspektionsroute = inspektionsrouten.Single(); foreach (var abschnitt in inspektionsroute.InspektionsRtStrAbschnitteList) { if (shape != null) { shape = shape.Union(abschnitt.StrassenabschnittGIS.Shape); } else { shape = abschnitt.StrassenabschnittGIS.Shape; } } inspektionsroute.Shape = shape; this.UpdateEntity(inspektionsroute); } }