public IHttpActionResult Put(TrailEdit trail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var service = CreateTrailService();

            if (!service.UpdateTrail(trail))
            {
                return(InternalServerError());
            }
            return(Ok());
        }
예제 #2
0
        //GET: Park/TrailEdit/{id}
        public ActionResult TrailEdit(int id)
        {
            var service = CreateTrailService();
            var detail  = service.GetTrailById(id);
            var model   =
                new TrailEdit
            {
                TrailId         = detail.TrailId,
                ParkId          = detail.ParkId,
                Name            = detail.Name,
                Length          = detail.Length,
                TrailDifficulty = detail.TrailDifficulty,
                IsTrailALoop    = detail.IsTrailALoop,
                Description     = detail.Description
            };

            return(View(model));
        }
예제 #3
0
        public bool UpdateTrail(TrailEdit model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity =
                    ctx
                    .Trails
                    .Single(e => e.TrailID == model.TrailID && e.OwnerID == _userID);

                entity.TrailID         = model.TrailID;
                entity.ParkID          = model.ParkID;
                entity.TrailName       = model.TrailName;
                entity.TrailDifficulty = model.TrailDifficulty;
                entity.TrailDistance   = model.TrailDistance;
                entity.TrailCondition  = model.TrailCondition;

                return(ctx.SaveChanges() == 1);
            }
        }
예제 #4
0
        //EDIT
        public bool EditTrail(TrailEdit model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity =
                    ctx
                    .Trails
                    .Single(p => p.TrailId == model.TrailId && p.IsDeleted == false);

                entity.ParkId          = model.ParkId;
                entity.Name            = model.Name;
                entity.Length          = model.Length;
                entity.Description     = model.Description;
                entity.IsTrailALoop    = model.IsTrailALoop;
                entity.TrailDifficulty = model.TrailDifficulty;

                return(ctx.SaveChanges() == 1);
            }
        }
예제 #5
0
        public ActionResult Edit(int id)
        {
            var service = CreateTrailService();
            var detail  = service.GetTrailById(id);
            var model   =
                new TrailEdit
            {
                TrailTrackerID     = detail.TrailTrackerID,
                TrailName          = detail.TrailName,
                Description        = detail.Description,
                Miles              = detail.Miles,
                Location           = detail.Location,
                Difficulty         = detail.Difficulty,
                Elevation          = detail.Elevation,
                SpotsAvailable     = detail.SpotsAvailable,
                AverageTimeMinutes = detail.AverageTimeMinutes
            };

            return(View(model));
        }
예제 #6
0
        /// <summary> Update Trail </summary>
        /// <param name="id"> park id </param>
        /// <param name="trail"></param>
        /// <returns> Updates Trail Object </returns>
        public IHttpActionResult Put(TrailEdit trail, int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var trailService = CreateTrailService();

            result = trailService.UpdateTrail(trail, id);
            if (result == "Tag Error")
            {
                return(BadRequest("Tag Not Found."));
            }
            if (result == "Tag Already Exists")
            {
                return(BadRequest("Tag Already Exists."));
            }
            if (result == "Tag not found")
            {
                return(BadRequest("Tag Not Found."));
            }
            if (result == "Invalid City ID & Park ID")
            {
                return(BadRequest("Invalid City ID & Park ID."));
            }
            if (result == "Invalid City ID")
            {
                return(BadRequest("Invalid City ID."));
            }
            if (result == "Invalid Park ID")
            {
                return(BadRequest("Invalid Park ID."));
            }
            if (result == "Update Error")
            {
                return(BadRequest("Invalid Trail ID."));
            }
            return(Ok());
        }
예제 #7
0
        public bool UpdateTrail(TrailEdit model)
        {
            using (var ctx = new ApplicationDbContext())
            {
                var entity =
                    ctx
                    .Trails
                    .Single(e => e.TrailTrackerID == model.TrailTrackerID && e.OwnerID == _userId);

                entity.TrailName          = model.TrailName;
                entity.Description        = model.Description;
                entity.Miles              = model.Miles;
                entity.Location           = model.Location;
                entity.Difficulty         = model.Difficulty;
                entity.Elevation          = model.Elevation;
                entity.SpotsAvailable     = model.SpotsAvailable;
                entity.AverageTimeMinutes = model.AverageTimeMinutes;
                entity.ModifiedUtc        = DateTimeOffset.UtcNow;

                return(ctx.SaveChanges() == 1);
            }
        }
예제 #8
0
        public ActionResult Edit(int id, TrailEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.TrailTrackerID != id)
            {
                ModelState.AddModelError("", "Id Missmatch");
                return(View(model));
            }

            var service = CreateTrailService();

            if (service.UpdateTrail(model))
            {
                TempData["SaveResult"] = "Your trail was updated.";
                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("", "Your trail could not be updated.");
            return(View());
        }
예제 #9
0
        public string UpdateTrail(TrailEdit model, int id)
        {
            using (var ctx = new ApplicationDbContext())
            {
                try
                {
                    var entity = ctx.Trails.Single(e => e.ID == id);

                    if (model.Name != null)
                    {
                        entity.Name = model.Name;
                    }
                    if (model.CityID != null)
                    {
                        entity.CityID = model.CityID;
                    }
                    if (model.ParkID != null)
                    {
                        entity.ParkID = model.ParkID;
                    }
                    if (model.Difficulty != null)
                    {
                        entity.Difficulty = model.Difficulty;
                    }
                    if (model.Description != null)
                    {
                        entity.Description = model.Description;
                    }
                    if (model.Distance != 0)
                    {
                        entity.Distance = model.Distance;
                    }
                    if (model.TypeOfTerrain != null)
                    {
                        entity.TypeOfTerrain = model.TypeOfTerrain;
                    }
                    if (model.Elevation != 0)
                    {
                        entity.Elevation = model.Elevation;
                    }
                    if (model.RouteType != null)
                    {
                        entity.RouteType = model.RouteType;
                    }
                    if (model.AddTags != null)
                    {
                        if (entity.Tags == null)
                        {
                            entity.Tags = "";
                        }
                        foreach (var tag in model.AddTags.Split(' '))
                        {
                            if (entity.AllTags != null && !entity.AllTags.ListOfAllTags.Contains(tag))
                            {
                                return("Tag Error");
                            }
                            else if (entity.Tags.Contains(tag))
                            {
                                entity.Tags = entity.Tags;
                                return("Tag Already Exists");
                            }
                            entity.Tags += $"{tag} ";
                        }
                    }
                    if (model.DeleteTags != null)
                    {
                        foreach (var tag in model.DeleteTags.Split(' '))
                        {
                            int    firstCount = entity.Tags.Count();
                            string delete     = entity.Tags.Replace($"{tag}", "");
                            entity.Tags = delete.Replace("  ", " ");
                            if (entity.Tags.Count() < firstCount)
                            {
                            }
                            else
                            {
                                return("Tag not found");
                            }
                        }
                    }
                    try
                    {
                        ctx.SaveChanges();
                        return("Okay");
                    }
                    catch
                    {
                        if (entity.City == null && entity.Park == null && entity.ParkID != null)
                        {
                            return("Invalid City ID & Park ID");
                        }
                        if (entity.City == null)
                        {
                            return("Invalid City ID");
                        }
                        if (entity.Park == null && model.ParkID != null)
                        {
                            return("Invalid Park ID");
                        }
                    }
                }
                catch { }
                return("Update Error");
            }
        }