示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }