public ActionResult Edit(ManageRoadMapViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            RoadMap roadMap = null;

            if (model.Id != null)
            {
                roadMap = Db.RoadMaps.FirstOrDefault(p => p.Id == model.Id);
                if (roadMap != null)
                {
                    roadMap.Name        = model.Name;
                    roadMap.Description = model.Description;
                }
            }
            else
            {
                var currentUserId = User.Identity.GetUserId();

                roadMap = new RoadMap(model.Name, model.Description, currentUserId);
                Db.RoadMaps.Add(roadMap);
            }

            Db.SaveChanges();

            return(RedirectToAction("List"));
        }
        public ActionResult Edit(int?id)
        {
            var model = new ManageRoadMapViewModel();

            if (id != null)
            {
                var roadMap = Db.RoadMaps
                              .Include(x => x.RoadmapXRoads.Select(y => y.Road))
                              .FirstOrDefault(p => p.Id == id);

                if (roadMap != null)
                {
                    model.Id          = roadMap.Id;
                    model.Name        = roadMap.Name;
                    model.Description = roadMap.Description;
                    model.Roads       = roadMap.RoadmapXRoads.Select(p => p.Road).ToList();
                }
            }

            return(View(model));
        }