private async Task <bool> HandleAsync(VehicleUpdated e)
        {
            Log.Information("Updated Vehicle: {LicenseNumber}, {Brand}, {Type}, Owner Id: {OwnerId}",
                            e.LicenseNumber, e.Brand, e.Type, e.OwnerId);

            try
            {
                using (var transaction = await _dbContext.Database.BeginTransactionAsync())
                {
                    var vehicle = await _dbContext.Vehicles.FirstAsync(v => v.LicenseNumber == e.LicenseNumber);

                    vehicle.LicenseNumber = e.LicenseNumber;
                    vehicle.Brand         = e.Brand;
                    vehicle.Type          = e.Type;
                    vehicle.OwnerId       = e.OwnerId;

                    _dbContext.Vehicles.Update(vehicle);

                    await _dbContext.SaveChangesAsync();

                    await transaction.CommitAsync();
                }
            }
            catch (DbUpdateException)
            {
                Console.WriteLine($"Skipped updating vehicle with license number {e.LicenseNumber}.");
            }

            return(true);
        }
Exemple #2
0
 public static Vehicle ToEntity(this VehicleUpdated e) => FromVehicleInfo((e.LicenseNumber, e.Brand, e.Type), e.OwnerId);