public ActionResult AddShedule(AddSheduleViewModel model) { int cityId = (int)Session["City"]; if (ModelState.IsValid) { try { var busId = int.Parse(model.Bus); var stop = stopsRepository.Get(x => x.CityId == cityId && x.Name == model.Stop).First(); var endStop = stopsRepository.Get(x => x.CityId == cityId && x.Name == model.EndStop).First(); var timeTable = timeTablesRepository.Get(x => x.BusId == busId && x.Stop.Id == stop.Id && x.FinalStop.Id == endStop.Id).First(); Days days = new Days(); foreach (var day in model.SelectedDays) { days |= ((Days[])Enum.GetValues(typeof(Days))).Where(x => x.ToDescription() == day).First(); } List<Shedule> sheduleRange = new List<Shedule>(); foreach (var time in model.Shedule) { sheduleRange.Add(new Shedule { Days = days, TimeTableId = timeTable.Id, Time = time }); } shedulesRepository.InsertRange(sheduleRange); model.Shedule = null; model.Bus = null; model.SelectedDays = null; TempData["Success"] = "Запись добавлена"; } catch (Exception ex) { NLog.LogManager.GetCurrentClassLogger().Error(ex); ModelState.AddModelError("", "Ошибка при добавлении записи. Повторите попытку позже"); } } model.Buses = timeTablesRepository.Get(x => x.Bus.CityId == cityId && x.Shedules.Count == 0) .Select(x => x.Bus) .Distinct() .Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.Number }); model.Days = ((Days[])Enum.GetValues(typeof(Days))).Select(x => x.ToDescription()); return View(model); }
public ActionResult AddShedule() { int cityId = (int)Session["City"]; var buses = timeTablesRepository.Get(x => x.Bus.CityId == cityId && x.Shedules.Count == 0) .Select(x => x.Bus) .Distinct() .Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.Number }); var days = ((Days[])Enum.GetValues(typeof(Days))).Select(x => x.ToDescription()); AddSheduleViewModel model = new AddSheduleViewModel { Buses = buses, Days = days }; return View(model); }