Ejemplo n.º 1
0
        public async Task SendVehicleStatusAsync(VehicleStatusDto dto)
        {
            var vehicle = await _vehicleRepository.GetWithOwnerAsync(dto.VehicleId);

            if (vehicle != null)
            {
                var statusDetail = Mapper.Map <VehicleStatusDetail>(dto);
                statusDetail.Vehicle = null;
                int increment = -1;
                while (true)
                {
                    try
                    {
                        statusDetail.Id = (await _vehicleStatusRepository.FindIdAsync()) + ++increment;
                        await _vehicleStatusRepository.InsertAsync(statusDetail);

                        await _vehicleStatusRepository.CommitAsync();

                        break;
                    }
                    catch
                    {
                        _vehicleStatusRepository.ClearChangeTracker();
                    } // very very carzy!!! sqllite is very crazy!!
                }
                statusDetail.Vehicle = vehicle;
                var status = Mapper.Map <StatusClientDto>(statusDetail);
                await _pingHub.Clients.All.SendAsync("statusRecieved", status);
            }
        }
Ejemplo n.º 2
0
        public async Task SendVehicleOverviewStatusAsync(VehicleStatusDto dto)
        {
            var vehicle = await _vehicleRepository.GetWithOwnerAsync(dto.VehicleId);

            if (vehicle != null)
            {
                var statusDetail = Mapper.Map <VehicleStatusDetail>(dto);
                await _vehicleOverviewRepository.UpdateOverviewAsync(vehicle, statusDetail);

                await _vehicleOverviewRepository.CommitAsync();

                var vehicleOverview = await _vehicleOverviewRepository.FindAsync(vehicle.Id);// if we reach here then it is not null

                var clientOverView = Mapper.Map <OverviewClientDto>(vehicleOverview);

                await _overviewHub.Clients.All.SendAsync("OverviewReceived", clientOverView);
            }
        }