private static List <GraphItem> GetGraphItems(
            int routeId,
            string routeName,
            List <IBusStationRouteEntity> busStationRoutes)
        {
            var stationGraph = new List <GraphItem>();

            RouteMappingHelper.GetDirectionForStations(
                busStationRoutes,
                out var forward,
                out var back);

            stationGraph.Add(new GraphItem
            {
                Route            = new NamedEntityModel(routeId, routeName),
                BusStationRoutes = forward
            });

            if (back.Any())
            {
                stationGraph.Add(new GraphItem
                {
                    Route            = new NamedEntityModel(routeId, routeName),
                    BusStationRoutes = back
                });
            }

            return(stationGraph);
        }
        public async Task <List <NewRouteWithStationsModel> > GetAllWithStationsAsync()
        {
            var newRoutes = await _dictionariesCacheHelper.GetAllNewRoutesWithStations();

            var routesWithStations = new List <NewRouteWithStationsModel>();

            foreach (var newRoute in newRoutes.OrderBy(x => x.Name, new RouteNameComparer()))
            {
                var item = MapToModel <NewRouteWithStationsModel>(newRoute);
                item.ForwardDirectionStations = new List <int>();
                item.BackDirectionStations    = new List <int>();

                if (newRoute.NewRouteStatusID == NewRouteStatusEnum.New ||
                    newRoute.NewRouteStatusID == NewRouteStatusEnum.Updated)
                {
                    var busStationRoutes = newRoute.BusStationRoutes
                                           .Select(x => (IBusStationRouteEntity)x)
                                           .ToList();

                    RouteMappingHelper.SetStations(item, busStationRoutes);
                }

                routesWithStations.Add(item);
            }

            return(routesWithStations);
        }
        public async Task <List <RouteWithStationsModel> > GetAllActiveRoutesWithStationsAsync()
        {
            var routes = await _dictionariesCacheHelper.GetAllActiveRoutesWithStations();

            var routesWithStations = new List <RouteWithStationsModel>();

            foreach (var route in routes)
            {
                var item = MapToModel <RouteWithStationsModel>(route);
                item.ForwardDirectionStations = new List <int>();
                item.BackDirectionStations    = new List <int>();

                var busStationRoutes = route.BusStationRoutes
                                       .Select(x => (IBusStationRouteEntity)x)
                                       .ToList();

                RouteMappingHelper.SetStations(item, busStationRoutes);

                routesWithStations.Add(item);
            }

            return(routesWithStations);
        }