public ActionResult EditRoadStep(int?roadId, int?id)
        {
            var model = new ManageRoadStepViewModel();

            if (id != null)
            {
                var roadStep = Db.RoadSteps
                               .Include(x => x.StepResources)
                               .Include(x => x.StepExercises)
                               .FirstOrDefault(p => p.Id == id);
                if (roadStep != null)
                {
                    model.Id          = roadStep.Id;
                    model.Name        = roadStep.Name;
                    model.Description = roadStep.Description;

                    model.StepResources = roadStep.StepResources.ToList();
                    model.StepExercises = roadStep.StepExercises.ToList();

                    if (roadId != null)
                    {
                        model.RoadId = roadId;
                    }
                }
            }

            return(View(model));
        }
        public ActionResult EditRoadStep(ManageRoadStepViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            RoadStep roadStep = null;

            if (model.Id != null)
            {
                roadStep = Db.RoadSteps.FirstOrDefault(p => p.Id == model.Id);
                if (roadStep != null)
                {
                    roadStep.Name        = model.Name;
                    roadStep.Description = model.Description;
                }
            }
            else
            {
                Road road = null;
                if (model.RoadId != null)
                {
                    road = Db.Roads.FirstOrDefault(p => p.Id == model.RoadId);
                }

                roadStep = new RoadStep(model.Name, model.Description, CurrentUserId, road);
                Db.RoadSteps.Add(roadStep);

                var currentTeacher = CurrentTeacher;
                if (currentTeacher == null)
                {
                    currentTeacher = new Teacher(CurrentUser);
                    Db.Teachers.Add(currentTeacher);
                }

                currentTeacher.AddRoadStep(roadStep);
            }

            Db.SaveChanges();

            return(RedirectToAction("List"));
        }