示例#1
0
        public async Task <IActionResult> UpdateLocation([FromBody] VehicleLocationRequest model)
        {
            model.Validate();
            await _trackingService.UpdateLocation(model);

            return(Ok());
        }
示例#2
0
 public void AddVehicleLocations(VehicleLocationRequest rece)
 {
     using (SqlConnection conn = new SqlConnection(Runbow.TWS.Dao.BaseAccessor._dataBase.ConnectionString))
     {
         SqlCommand cmd = new SqlCommand("Pro_InsertVehicleLocation", conn);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Parameters.AddWithValue("@Vehiclelocation", rece.vehiclelocation.Select(vehiclelocation => new VehicleLocationToDb(vehiclelocation)));
         cmd.Parameters[0].SqlDbType = SqlDbType.Structured;
         conn.Open();
         cmd.ExecuteNonQuery();
     }
 }
示例#3
0
 public bool AddVehicleLocations(VehicleLocationRequest request)
 {
     try
     {
         accessor.AddVehicleLocations(request);
         return(true);
     }
     catch (Exception ex)
     {
         LogError(ex);
         return(false);
     }
 }
        public async Task UpdateLocation(VehicleLocationRequest model)
        {
            var vehicle = _vehicleRepository.FindOneByCondition(x => x.VehicleNumber == model.VehicleNumber && x.IsActive);

            if (vehicle == null)
            {
                throw new VehicleNotFoundException(ErrorCode.E102, model.VehicleNumber);
            }

            //Check session was created or not
            var session = _trackingSessionRepository.FindOneByCondition(x =>
                                                                        x.CreatedDate >= DateTime.UtcNow.Date &&
                                                                        x.VehicleId == vehicle.Id);

            if (session == null)
            {
                session = new TrackingSession()
                {
                    VehicleId      = vehicle.Id,
                    CreatedDate    = DateTime.UtcNow,
                    TrackingRemark = DateTime.UtcNow.ToString("d")
                };
                _trackingSessionRepository.Create(session);
                await _trackingSessionRepository.SaveAsync();
            }

            //Update Location with this session
            var location = new TrackingHistory()
            {
                TrackingSessionId = session.Id,
                CreatedDate       = DateTime.UtcNow,
                Lat = model.Latitude,
                Lon = model.Longitude
            };

            _trackingHistoryRepository.Create(location);
            await _trackingHistoryRepository.SaveAsync();
        }