public IActionResult InsertNewRoute(AddNewRouteToTimetableVM addNewRouteToTimetableVM) { if (ModelState.IsValid) { addNewRouteToTimetableVM.Timetable.IsActive = true; addNewRouteToTimetableVM.Timetable.LineName = _unitOfWork.LineName.Get(addNewRouteToTimetableVM.Timetable.LineNameId); addNewRouteToTimetableVM.Timetable.Wehicle = _unitOfWork.Wehicle.Get(addNewRouteToTimetableVM.Timetable.WehicleId); _unitOfWork.Timetable.Add(addNewRouteToTimetableVM.Timetable); _unitOfWork.Save(); LineName lineName = _unitOfWork.LineName.Get(addNewRouteToTimetableVM.Timetable.LineNameId); IEnumerable <BusStopList> listForLine = _unitOfWork.BusStopList.GetAll(filter: bsl => bsl.LineNameId == lineName.Id, includeProperties: "BusStop", orderBy: bsl => bsl.OrderBy(o => o.BusStopNumber)); ArrivalDepartureBusStopListVM arrivalDepartureBusStopListVM = new ArrivalDepartureBusStopListVM(new List <ArrivalDepartureBusStopVM>(), addNewRouteToTimetableVM.Timetable.Id); foreach (var itemLine in listForLine) { arrivalDepartureBusStopListVM.arrivalDepartureBusStopListVM.Add(new ArrivalDepartureBusStopVM(itemLine.BusStopId, itemLine.BusStop.Name, null, null)); } return(View(arrivalDepartureBusStopListVM)); } else { return(RedirectToAction(nameof(Index))); } }
public IActionResult Insert(ArrivalDepartureBusStopListVM arrivalsDeparturesBusStopListVM) { if (ModelState.IsValid) { for (int i = 0; i < arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM.Count; i++) { if (i == 0) { if (arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].DepartureTime == null) { IList <Timetable> timetables = (IList <Timetable>)_unitOfWork.Timetable.GetAll(); Timetable timetable = _unitOfWork.Timetable.GetFirstOrDefault(t => t.Id == timetables[timetables.Count - 1].Id); _unitOfWork.Timetable.Remove(timetable); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } } else if (i == arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM.Count - 1) { if (arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].ArrivalTime == null) { IList <Timetable> timetables = (IList <Timetable>)_unitOfWork.Timetable.GetAll(); Timetable timetable = _unitOfWork.Timetable.GetFirstOrDefault(t => t.Id == timetables[timetables.Count - 1].Id); _unitOfWork.Timetable.Remove(timetable); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } } else { if (arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].ArrivalTime == null || arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].DepartureTime == null) { IList <Timetable> timetables = (IList <Timetable>)_unitOfWork.Timetable.GetAll(); Timetable timetable = _unitOfWork.Timetable.GetFirstOrDefault(t => t.Id == timetables[timetables.Count - 1].Id); _unitOfWork.Timetable.Remove(timetable); _unitOfWork.Save(); return(RedirectToAction(nameof(Index))); } } ArrivalsDepartures arrivalDeparture = new ArrivalsDepartures() { ArrivalTime = arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].ArrivalTime, DepartureTime = arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].DepartureTime, BusStopId = arrivalsDeparturesBusStopListVM.arrivalDepartureBusStopListVM[i].BusStopId, TimetableId = arrivalsDeparturesBusStopListVM.TimetableId }; _unitOfWork.ArrivalsDepartures.Add(arrivalDeparture); _unitOfWork.Save(); } return(RedirectToAction(nameof(Index))); } else { IList <Timetable> timetables = (IList <Timetable>)_unitOfWork.Timetable.GetAll(); Timetable timetable = _unitOfWork.Timetable.GetFirstOrDefault(t => t.Id == timetables[timetables.Count - 1].Id); _unitOfWork.Timetable.Remove(timetable); _unitOfWork.Save(); return(RedirectToAction(nameof(Index), arrivalsDeparturesBusStopListVM)); } }