//GET: Routes public async Task <IActionResult> Index(Models.ViewModel.Search.IndexViewModel model) { List <Models.ViewModel.Route.IndexViewModel> listRoutes = await _repository.GetRoutesForSchedule(model); return(View(listRoutes)); }
public async Task <List <Models.ViewModel.Route.IndexViewModel> > GetRoutesForSchedule(Models.ViewModel.Search.IndexViewModel model) { List <Models.ViewModel.Route.IndexViewModel> listRoutes = new List <Models.ViewModel.Route.IndexViewModel>(); var routes = await _context.Routes.Include(r => r.RouteStations).ThenInclude(rs => rs.Station).ToListAsync(); foreach (var r in routes) { var items = r.RouteStations.Where(rs => rs.Station.Name == model.From).ToList(); foreach (var item in items) { var distance = item.Distance; var routeItems = r.RouteStations.Where(rs => rs.Station.Name == model.To && rs.Distance > distance).ToList(); foreach (var ri in routeItems) { listRoutes.Add( new Models.ViewModel.Route.IndexViewModel { Id = ri.Route.Id, From = ri.Route.Start, To = ri.Route.Finish, Arrival = ri.Arrival, ParkingTime = ri.ParkingTime, Departure = ri.Departure } ); } } } return(listRoutes.OrderBy(r => r.Departure).ToList <Models.ViewModel.Route.IndexViewModel>()); }