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 })); }
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]); } }