public async Task Handle(AddVehicleCommand command) { if (await _dataAccessObject.AnyAsync(m => m.Id == command.Id)) { _logger.LogWarning("Vehicle {id} already added", command.Id); await _bus.Publish(new VehicleAddedEvent { VehicleId = command.Id }); return; } _logger.LogInformation("Add vehicle with {plate} requested by {user}", command.Plate, _userAccessor.User?.Identity.Name); //using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) //{ // transaction.EnlistRebus(); var vehicle = new DomainModel.Vehicle(command.Id) { Plate = command.Plate, Model = command.Model, Brand = command.Brand, Color = command.Color, Customer = command.Customer, Year = command.Year, }; await _repository.AddAsync(vehicle); await _bus.Publish(new VehicleAddedEvent { VehicleId = command.Id }); // transaction.Complete(); //} await _bus.Reply(command.Id); }
public async Task Handle(RemoveVehicleCommand command) { DomainModel.Vehicle vehicle = await _repository.GetAsync(command.Id); if (vehicle == null) { return; } await _repository.RemoveAsync(vehicle); }
public static Repository.Models.Vehicle ConvertFrom(DomainModel.Vehicle vehicle) { var vehicleDTO = new Repository.Models.Vehicle(); vehicleDTO.VehicleId = vehicle.Id; vehicleDTO.Location = new GeoLocation(vehicle.Latitude, vehicle.Longitude); vehicleDTO.Route = vehicle.Route; vehicleDTO.Date = DateTime.Now; return(vehicleDTO); }
public static DomainModel.Vehicle ConvertToDomain(this Vehicle vehicle, double lat, double lon) { var origin = new GeoCoordinate(lat, lon); var destin = new GeoCoordinate(vehicle.Latitude, vehicle.Longitude); var distance = origin.GetDistanceTo(destin); var vehicleDomain = new DomainModel.Vehicle(vehicle.Id, vehicle.Route, vehicle.Latitude, vehicle.Longitude, vehicle.SecondsSinceReport, distance); return(vehicleDomain); }
public static Model.Vehicle ConvertFromDomain(DomainModel.Vehicle source) { var destin = new Model.Vehicle(); destin.Id = source.Id; destin.Route = source.Route; destin.Latitude = source.Latitude; destin.Longitude = source.Longitude; destin.SecondsSinceReport = source.SecondsSinceReport; destin.Distance = source.DistanceFromBusStop.ToString("N0"); destin.CreatedOn = DateTime.Now; return(destin); }
public static DomainModel.Vehicle ConvertToDomain(this Vehicle vehicle) { var vehicleDomain = new DomainModel.Vehicle(vehicle.Id, vehicle.Route, vehicle.Latitude, vehicle.Longitude, vehicle.SecondsSinceReport, -1); return(vehicleDomain); }