public async Task <CarRead> GetCar(string id) { var car = _dataAccess.GetCar(new Guid(id)); if (car.Locked) { if (CarHasBeenLocked40Seconds(car)) { //Lock timed out and can be ignored and set to false var updateCarLockedStatus = new UpdateCarLockedStatus { LockedStatus = false, CarId = car.CarId, CompanyId = car.CompanyId, UpdateCarLockedTimeStamp = DateTime.Now.Ticks }; await _endpointInstancePriority.Publish(updateCarLockedStatus).ConfigureAwait(false); } } var CarRead = new CarRead(car.CarId) { CompanyId = car.CompanyId, CreationTime = car.CreationTime, Locked = car.Locked, Online = car.Online, Speed = car.Speed, RegNr = car.RegNr, VIN = car.VIN }; return(CarRead); }
public async Task <IEnumerable <CarRead> > GetCarsAndQueLengthAsync() { Dictionary <string, int> queueLengthForEachCar = await GetQueueLenghtForEachCar(); var list = new List <CarRead>(); var cars = _dataAccess.GetCars(); foreach (var car in cars) { if (car.Locked) { if (CarHasBeenLocked40Seconds(car)) { //Lock timed out and can be ignored and set to false var updateCarLockedStatus = new UpdateCarLockedStatus { LockedStatus = false, CarId = car.CarId, CompanyId = car.CompanyId, UpdateCarLockedTimeStamp = DateTime.Now.Ticks }; await _endpointInstancePriority.Publish(updateCarLockedStatus).ConfigureAwait(false); } } int tmpQueueLenghtForCar = 0; if (CarIdAlreadyInQueue(queueLengthForEachCar, car.CarId.ToString())) { tmpQueueLenghtForCar = queueLengthForEachCar.FirstOrDefault(k => k.Key == car.CarId.ToString()).Value; } ; list.Add(new CarRead(car.CarId) { CompanyId = car.CompanyId, CreationTime = car.CreationTime, Locked = car.Locked, Online = car.Online, Speed = car.Speed, RegNr = car.RegNr, VIN = car.VIN, QueueLength = tmpQueueLenghtForCar }); } return(list); }
public async Task UpdateCarLocked([FromBody] CarRead CarRead) { var oldCar = GetCar(CarRead.CarId.ToString()); if (oldCar == null) { return; } var updateCarLockedStatus = new UpdateCarLockedStatus { LockedStatus = CarRead.Locked, CarId = CarRead.CarId, CompanyId = CarRead.CompanyId, UpdateCarLockedTimeStamp = DateTime.Now.Ticks }; await _endpointInstancePriority.Publish(updateCarLockedStatus).ConfigureAwait(false); }
public async Task <IEnumerable <CarRead> > GetCars() { var list = new List <CarRead>(); var cars = _dataAccess.GetCars(); foreach (var car in cars) { if (car.Locked) { if (CarHasBeenLocked40Seconds(car)) { //Lock timed out and can be ignored and set to false var updateCarLockedStatus = new UpdateCarLockedStatus { LockedStatus = false, CarId = car.CarId, CompanyId = car.CompanyId, UpdateCarLockedTimeStamp = DateTime.Now.Ticks }; await _endpointInstancePriority.Publish(updateCarLockedStatus).ConfigureAwait(false); } } list.Add(new CarRead(car.CarId) { CompanyId = car.CompanyId, CreationTime = car.CreationTime, Locked = car.Locked, Online = car.Online, Speed = car.Speed, RegNr = car.RegNr, VIN = car.VIN }); } return(list); }