Exemple #1
0
        public async Task <List <RouteModel> > GetAllAsync(
            ClaimsPrincipal userPrincipal,
            int?projectId,
            bool?active)
        {
            var userRoutesModel = await _userManager.GetAvailableRoutesModel(userPrincipal);

            var result = await _routeRepository.GetAllAsync(userRoutesModel, projectId, active);

            return(MapToModel <RouteModel>(result));
        }
        public async Task <IActionResult> GetAllRoutesAsync(CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var modelRoutesList = await routeRepository.GetAllAsync(cancellationToken).ConfigureAwait(false);

            var modelCheckpoints = await checkpointRepository.GetAllAsync(cancellationToken).ConfigureAwait(false);

            var clientRoutesList = modelRoutesList.Select(item => Converter.RouteConverter.Convert(item, modelCheckpoints))
                                   .ToImmutableList();

            return(Ok(clientRoutesList));
        }
Exemple #3
0
        public async Task <List <TrolleybusTodayStatusModel> > GetTrolleybusTodayStatus()
        {
            var routes = await _routeRepository.GetAllAsync(null, null, null);

            var statuses = await _busDataRepository.GetTrolleybusTodayStatus();

            var trolleybuses = await _objectRepository.GetAllTrolleybuses();

            var compType = StringComparison.InvariantCultureIgnoreCase;

            var result = statuses.Select(s =>
            {
                var currentRoute = routes.First(x => x.Name.Equals(s.RouteName, compType));
                var newRoute     = !string.IsNullOrEmpty(s.NewTrolleyNumber)
                    ? routes.First(x => x.IsTrolleybus && Regex.Match(x.Name, @"\d+").Value.Equals(s.NewTrolleyNumber, compType))
                    : null;

                if (currentRoute == newRoute)
                {
                    newRoute = null;
                }

                var vehicle   = trolleybuses.First(x => x.Name.Equals(s.Name, compType));
                vehicle.Route = routes.First(x => x.Id == vehicle.LastRouteId.Value);

                var item = new TrolleybusTodayStatusModel
                {
                    Place            = s.Place,
                    CoordinationTime = s.CoordTime,
                    Trolleybus       = _mapper.Map <ObjectModel>(vehicle),
                    NewRoute         = _mapper.Map <RouteModel>(newRoute),
                    IsNotDefined     = string.IsNullOrEmpty(s.NewTrolleyNumber)
                };

                return(item);
            })
                         .ToList();

            result.Sort((a, b) =>
            {
                var compareResult = -(a.NewRoute != null).CompareTo(b.NewRoute != null);

                if (compareResult == 0)
                {
                    compareResult = a.IsNotDefined.CompareTo(b.IsNotDefined);

                    if (compareResult == 0)
                    {
                        var aRouteNumber = int.Parse(Regex.Match(a.Trolleybus.Route.Name, @"\d+").Value);
                        var bRouteNumber = int.Parse(Regex.Match(b.Trolleybus.Route.Name, @"\d+").Value);

                        compareResult = aRouteNumber.CompareTo(bRouteNumber);

                        if (compareResult == 0)
                        {
                            compareResult = a.Trolleybus.Name.CompareTo(b.Trolleybus.Name);
                        }
                    }
                }

                return(compareResult);
            });

            return(result);
        }
Exemple #4
0
 public async Task <IEnumerable <Route> > GetAllAsync(string query, RouteFilterByEnum?filterField, RouteSortByEnum?sortBy, int?take, int?skip)
 {
     return(await _routeRepository.GetAllAsync(query, filterField, sortBy, take, skip));
 }