Exemple #1
0
        public async Task <Result <int> > Create(RouteCreateModel item)
        {
            try
            {
                if (await _userResolver.IsConfirmed())
                {
                    string line = $"LINESTRING({item.Line})";

                    bool isValidLine = _routeRepository.IsValidLine(line);

                    if (isValidLine)
                    {
                        string point = RouteHelper.GetFirstPoint(item.Line);

                        var user = await _userResolver.GetUser();

                        var infoEntity = new RouteInfoEntity()
                        {
                            Difficulty = item.Difficulty,
                            Name       = item.Name,
                            Geometry   = new RouteGeomEntity()
                            {
                                Line   = line,
                                Status = 1
                            },
                            UserId = user.Id,
                            Point  = new RoutePointEntity()
                            {
                                Point  = $"POINT({point})",
                                Status = 1
                            }
                        };

                        _routeRepository.Add(infoEntity);

                        await _routeRepository.Commit();

                        return(new Result <int>(infoEntity.ID));
                    }
                    else
                    {
                        ErrorResult error = GenerateError("Invalid route line", "Line", "Invalid geometry", ErrorStatus.InvalidModel);
                        return(new Result <int>(error));
                    }
                }
                else
                {
                    ErrorResult error = GenerateError("User is not confirmed", "", "", ErrorStatus.Forbidden);
                    return(new Result <int>(error));
                }
            }
            catch (Exception ex)
            {
                ErrorResult error = GenerateError(ex);
                return(new Result <int>(error));
            }
        }
Exemple #2
0
        public ActionResult Resume(RouteEditViewModel findRouteSaveViewModel)
        {
            List <Point> wayPoints = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Point> >(Request.Form["Route.WayPoints"]);

            findRouteSaveViewModel.Route.WayPoints = wayPoints;
            if (!ModelState.IsValid)
            {
                return(View(findRouteSaveViewModel));
            }
            if (findRouteSaveViewModel.Route.Id > 0)
            {
                routeRepository.UpdateRoute(mapper.Map <Route, RouteData>(findRouteSaveViewModel.Route));
            }
            else
            {
                routeRepository.AddRoute(mapper.Map <Route, RouteData>(findRouteSaveViewModel.Route));
            }
            routeRepository.Commit();
            return(RedirectToAction("Resume"));
        }