示例#1
0
        public List <DcsFuelInfo> GetFuelInfo(FuelInfoRequest fuelInfoRequest)
        {
            var fuelInfo = GetAll()
                           .Where(c => c.DriverVehicle.Driver.DriverId == fuelInfoRequest.DriverId &&
                                  (c.PacketTime >= fuelInfoRequest.FromDate &&
                                   c.PacketTime <= fuelInfoRequest.ToDate))
                           .Include(i => i.DriverVehicle).ToList();

            return(fuelInfo);
        }
示例#2
0
        public async Task <FuelInfoViewModel> GetFuelInfoAsync(FuelInfoRequest fuelInfoRequest)
        {
            var fuelInfo = await _fuelInfoRepository.GetFuelInfo(fuelInfoRequest).ConfigureAwait(false);

            var    fuleInfoModelList = new List <FuelInfoModel>();
            var    refuelModelList   = new List <FuelInfoModel>();
            var    leakageModelList  = new List <FuelInfoModel>();
            var    theftModelList    = new List <FuelInfoModel>();
            double previousVolume    = 0;

            foreach (var data in fuelInfo)
            {
                fuleInfoModelList.Add(new FuelInfoModel()
                {
                    VehicleId = data.DriverVehicle.VehicleId, Volume = data.CurrentVolume, PacketTime = data.PacketTime
                });
                if (data.RefuelVolume > 0)
                {
                    refuelModelList.Add(new FuelInfoModel()
                    {
                        VehicleId  = data.DriverVehicle.VehicleId,
                        Volume     = Math.Round(data.RefuelVolume, 2),
                        PacketTime = data.PacketTime
                    });
                }
                if (previousVolume > 0 && (previousVolume - data.CurrentVolume) >= 5 && (previousVolume - data.CurrentVolume) <= 40)
                {
                    leakageModelList.Add(new FuelInfoModel()
                    {
                        VehicleId = data.DriverVehicle.VehicleId, Volume = Math.Round(previousVolume - data.CurrentVolume, 2), PacketTime = data.PacketTime
                    });
                }
                if (previousVolume > 0 && data.RefuelVolume == 0 && (previousVolume - data.CurrentVolume) >= 50)
                {
                    theftModelList.Add(new FuelInfoModel()
                    {
                        VehicleId = data.DriverVehicle.VehicleId, Volume = Math.Round(previousVolume - data.CurrentVolume, 2), PacketTime = data.PacketTime
                    });
                }
                previousVolume = data.CurrentVolume;
            }

            var fuelInfoViewModel = new FuelInfoViewModel()
            {
                FuelInfoModel = fuleInfoModelList,
                RefuelModel   = refuelModelList,
                LeakageModel  = leakageModelList,
                TheftModel    = theftModelList
            };

            return(fuelInfoViewModel);
        }
示例#3
0
        public async Task <IActionResult> GetAsync([FromQuery] FuelInfoRequest fuelInfoServiceRequest)
        {
            _logger.LogInformation($"Requesting fuel information from {this.GetControllerName()}");
            var fuelInfoRequest = new Fuel.Domain.ViewModel.FuelInfoRequest()
            {
                DriverId = fuelInfoServiceRequest.DriverId,
                FromDate = fuelInfoServiceRequest.FromDate.Date,
                ToDate   = fuelInfoServiceRequest.ToDate.Date
            };
            var locations = await _fuelService.GetFuelInfoAsync(fuelInfoRequest).ConfigureAwait(false);

            return(Ok(locations));
        }
示例#4
0
        public IActionResult Get([FromQuery, ModelBinder(Name = "FromDate")] FuelInfoServiceRequest fuelInfoServiceRequest)
        {
            //if (driverId == null || fromDate == null || toDate == null)
            //{
            //    return BadRequest("Invalid query parameters");
            //}
            var             dateFormat      = "yyyy-MM-dd";
            FuelInfoRequest fuelInfoRequest = new FuelInfoRequest()
            {
                DriverId = int.Parse(fuelInfoServiceRequest.DriverId),
                FromDate = fuelInfoServiceRequest.FromDate.ToDateTime(dateFormat, CultureInfo.CurrentCulture.Name),
                ToDate   = fuelInfoServiceRequest.ToDate.ToDateTime(dateFormat, CultureInfo.CurrentCulture.Name)
            };
            var locations = _fuelService.GetFuelInfo(fuelInfoRequest);

            return(Ok(locations));
        }