public async Task <FleetModel> GetEventVehicles(string eventId) { if (_config.UseSimulation) { return(GetSimulatedEventVehicles(eventId)); } MobiliyaFleetSummary fleet = await FindFleetByEventId(eventId); List <MobiliyaFleetVehicle> vehicles = await FindVehiclesByFleetId(fleet.id); List <MobiliyaFleetDriver> drivers = await FindDriversByFleetId(fleet.id); FleetModel fleetmodel = new FleetModel() { FleetId = fleet.id, VehicleCount = vehicles.Count, Vehicles = new List <FleetVehicle>() }; foreach (MobiliyaFleetVehicle vehicle in vehicles) { ((List <FleetVehicle>)fleetmodel.Vehicles).Add(new FleetVehicle() { VehicleId = vehicle.id, VehicleName = $"{vehicle.brandName} {vehicle.model}", DriverId = vehicle.userId, DriverName = GetDriverById(drivers, vehicle.userId) }); } return(fleetmodel); }
private async Task <MobiliyaFleetSummary> FindFleetByEventId(string eventId) { IRestResponse <string> response = await QueryAllFleetsAsync(); if (!response.IsSuccessful) { throw new Exception(response.ErrorMessage); } var responseJson = response.Data; var jObject = JObject.Parse(responseJson); var message = jObject.GetValue("message"); if (!string.Equals(message.ToObject <string>(), "Success")) { throw new HttpRequestException($"No fleets found. Check Mobiliya config."); } var data = jObject.GetValue("data"); var dataArray = data.ToObject <JArray>(); List <MobiliyaFleetSummary> fleets = dataArray.ToObject <List <MobiliyaFleetSummary> >(); MobiliyaFleetSummary fleet = fleets.FirstOrDefault(p => p.fleetName.Equals(eventId, StringComparison.InvariantCultureIgnoreCase)); if (fleet == null && eventId.Equals("LasVegas", StringComparison.InvariantCultureIgnoreCase)) // demo case { fleet = fleets.FirstOrDefault(p => p.fleetName.Equals("SampleFleet", StringComparison.InvariantCultureIgnoreCase)); } if (fleet == null) { throw new HttpRequestException($"No fleet found for event {eventId}. Create a fleet for this event."); } return(fleet); }