Example #1
0
        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);
        }
Example #2
0
        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);
        }