Esempio n. 1
0
        public async Task <IActionResult> GetVehiclePositions([FromBody] VehiclePositionsDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vehicle = await GetVehicle(model.TrackingId);

            if (vehicle == null)
            {
                return(BadRequest(new ApiResponse
                {
                    Code = ResponseEnum.InvalidVehicleId.ResponseCode(),
                    Description = ResponseEnum.InvalidVehicleId.DisplayName(),
                }));
            }

            var locations = await _vehicleTrackingService.GetVehicleLocations(vehicle.Id, model.From, model.To);

            return(Ok(new ApiResponseData
            {
                Code = ResponseEnum.ApprovedOrCompletedSuccesfully.ResponseCode(),
                Description = ResponseEnum.ApprovedOrCompletedSuccesfully.DisplayName(),
                Data = locations
            }));
        }
        public async Task HandleAsync(GetVehicleCurrentPositionQuery command, CancellationToken cancellationToken)
        {
            var vehiclePosition = _vehiclePositionRepository.Where(x => x.VehicleId == command.VehicleId)
                                  .Select(x =>
                                          new
            {
                x.Point,
                x.RegDateTime
            }).OrderByDescending(x => x.RegDateTime).FirstOrDefault();

            if (vehiclePosition != null)
            {
                var result = new VehiclePositionsDto();
                result.Date         = vehiclePosition.RegDateTime;
                result.Point        = new VehiclePoint(vehiclePosition.Point.X, vehiclePosition.Point.Y, vehiclePosition.Point.Z);
                result.LocalityName = _mapAPI.GetNearbyPlaceName(result.Point);
                command.Result      = result;
                new VehiclePoint(vehiclePosition.Point.X, vehiclePosition.Point.Y, vehiclePosition.Point.Z);
            }
        }