コード例 #1
0
        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");
        }
コード例 #2
0
 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);
 }