public ActionResult Edit(int Id, RoutesEditViewModel model) { int cityId = (int)Session["City"]; City city = citiesRepository.GetByID(cityId); if (!ModelState.IsValid) { return View("Route", model); } var bus = city.Buses.FirstOrDefault(x => x.Number == model.BusNumber); var stop = city.Stops.FirstOrDefault(x => x.Name == model.Stop); var finalStop = city.Stops.FirstOrDefault(x => x.Name == model.EndStop); var newTimeTable = timeTablesRepository.Get(x => x.BusId == bus.Id && x.Stop.Id == stop.Id && x.FinalStop.Id == finalStop.Id).FirstOrDefault(); var route = routesRepository.GetByID(Id); route.Name = model.Name; route.TimeTable = newTimeTable; route.TimeTableId = newTimeTable.Id; try { routesRepository.Update(route); } catch(Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex); model.Buses = city.Buses.Select(x => x.Number); model.Stops = timeTablesRepository.Get(x => x.BusId == route.TimeTable.BusId).Select(x => x.Stop.Name).Distinct(); model.EndStops = timeTablesRepository.Get(x => x.BusId == route.TimeTable.BusId && x.Stop.Id == route.TimeTable.Stop.Id).Select(x => x.FinalStop.Name); ModelState.AddModelError("", "Ошибка при обновлении записи. Повторите попытку позже"); return View("Route", model); } TempData["result"] = "Запись обновлена"; return RedirectToAction("Edit"); }
public ActionResult Edit(int Id) { var model = routesRepository.GetByID(Id); if (model == null) { return RedirectToAction("Edit", "Routes"); } int cityId = (int)Session["City"]; City city = citiesRepository.GetByID(cityId); var result = new RoutesEditViewModel() { Id = Id, BusNumber = model.TimeTable.Bus.Number, Stop = model.TimeTable.Stop.Name, Name = model.Name, EndStop = model.TimeTable.FinalStop.Name, Buses = city.Buses.Select(x => x.Number), Stops = timeTablesRepository.Get(x => x.BusId == model.TimeTable.BusId).Select(x => x.Stop.Name).Distinct(), EndStops = timeTablesRepository.Get(x => x.BusId == model.TimeTable.BusId && x.Stop.Id == model.TimeTable.Stop.Id).Select(x => x.FinalStop.Name) }; return View(result); }