示例#1
0
        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"));
     }
 }
示例#4
0
        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));
        }
示例#5
0
        public ActionResult Insert(StrassenabschnittGISModel strassenabschnittGisModel)
        {
            strassenabschnittGisModel = ValidateStrassenabschnittGisModelGeometry(strassenabschnittGisModel);

            if (ModelState.IsValid)
            {
                strassenabschnittGISService.CreateEntity(strassenabschnittGisModel);
                return(new EmsgEmptyResult());
            }

            PrepareViewBag(true);

            return(PartialView("EditStrassenabschnitt", strassenabschnittGisModel));
        }
示例#6
0
        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);
            }
        }