예제 #1
0
        public object Get(MarketVehicleTypesRequest request)
        {
            var market = _taxiHailNetworkServiceClient.GetCompanyMarket(request.Latitude, request.Longitude);

            if (!market.HasValue())
            {
                // In home market, no network vehicles
                return(new VehicleType[0]);
            }

            var marketVehicleTypes = _taxiHailNetworkServiceClient.GetMarketVehicleTypes(market: market);

            return(marketVehicleTypes.Select(v => new VehicleType
            {
                Id = v.Id,
                Name = v.Name,
                LogoName = v.LogoName,
                ReferenceDataVehicleId = v.ReferenceDataVehicleId,
                MaxNumberPassengers = v.MaxNumberPassengers
            }));
        }
예제 #2
0
        public object Get(UnassignedNetworkVehicleTypeRequest request)
        {
            try
            {
                // We fetch the currently assigned networkVehicleTypeIds.
                var allAssigned = _dao.GetAll()
                                  .Select(x => x.ReferenceNetworkVehicleTypeId)
                                  .Where(x => x.HasValue)
                                  .Select(x => x.Value)
                                  .ToArray();

                //We remove from consideration the current vehicle type id.
                if (request.NetworkVehicleId.HasValue)
                {
                    allAssigned = allAssigned.Where(x => x != request.NetworkVehicleId.Value).ToArray();
                }

                var networkVehicleType = _taxiHailNetworkServiceClient.GetMarketVehicleTypes(_serverSettings.ServerData.TaxiHail.ApplicationKey);

                //We filter out every market vehicle type that are currently in use.
                return(networkVehicleType
                       .Where(x => !allAssigned.Any(id => id == x.ReferenceDataVehicleId))
                       .Select(x => new
                {
                    Id = x.ReferenceDataVehicleId,
                    Name = x.Name,
                    MaxNumberPassengers = x.MaxNumberPassengers
                })
                       .ToArray());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex);

                return(new object[0]);
            }
        }