public void Setup()
 {
     validVehicle         = new Domain.Entities.Vehicle(1, "honda", "Civic", "prata", "abc1234", 1);
     handlerError         = new VehicleCommandHandler(new ErrorVehicleRepository(), new CompanyVehicleCommandHandler(new ErrorCompanyVehicleRepository()), new ErrorCompanyVehicleRepository());
     handlerSuccess       = new VehicleCommandHandler(new SuccessVehicleRepository(), new CompanyVehicleCommandHandler(new SuccessCompanyVehicleRepository()), new SuccessCompanyVehicleRepository());
     removeVehicleCommand = new RemoveVehicleCommand(10);
 }
Example #2
0
        protected override void Handle(CreateRepairCommand request)
        {
            var client = _dbContext.Clients.Include(c => c.Address)
                         .Include(c => c.Vehicles)
                         .ThenInclude(v => v.Repairs)
                         .FirstOrDefault(c => c.Id == request.Client.Id);

            var manager = _dbContext.Employees.Include(e => e.Identity)
                          .Include(m => m.Repairs)
                          .FirstOrDefault(e => e.Id == request.ManagerId);

            var vehicle = _dbContext.Vehicles.Include(v => v.Type)
                          .Include(v => v.Repairs)
                          .FirstOrDefault(v => v.Id == request.Vehicle.Id);

            if (client == null)
            {
                client = new Client(request.Client.Id,
                                    request.Client.FirstName,
                                    request.Client.LastName,
                                    request.Client.PhoneNumber,
                                    request.Client.Email,
                                    request.Client.Street,
                                    request.Client.City,
                                    request.Client.Code);
                _dbContext.Clients.Add(client);
            }
            else
            {
                client.UpdateAddress(request.Client.Street, request.Client.City, request.Client.Code);
                client.UpdateContactDetails(request.Client.PhoneNumber, request.Client.Email);
            }

            if (vehicle == null)
            {
                if (_dbContext.VehicleTypes.Any(vt => vt.Id == request.Vehicle.TypeId))
                {
                    vehicle = new Domain.Entities.Vehicle(request.Vehicle.Id, request.Vehicle.RegistrationNumbers, client.Id, request.Vehicle.TypeId);
                }
                else
                {
                    vehicle = new Domain.Entities.Vehicle(request.Vehicle.Id, client.Id, request.Vehicle.RegistrationNumbers, request.Vehicle.Brand, request.Vehicle.Model);
                }
            }

            var repair = new Domain.Entities.Repair(request.Repair.Id, request.Repair.Description, manager.Id, vehicle.Id);

            client.AddRepair(repair, vehicle);
            if (_dbContext.SaveChanges() == 0)
            {
                throw new Exception("Could not create new repair");
            }
        }
Example #3
0
        public async Task <int> Handle(CreateVehicleCommand request, CancellationToken cancellationToken)
        {
            if (await VehicleHelper.IsVehicleNumberOccupied(request.Number, _context))
            {
                throw new ConflictException("Vehicle number is occupied!");
            }

            var vehicle = new Domain.Entities.Vehicle
            {
                OwnerUserId = request.OwnerUserId,
                Brand       = request.Brand,
                Model       = request.Model,
                Year        = request.Year,
                Number      = request.Number,
                Country     = request.Country
            };

            await _context.Vehicle.AddAsync(vehicle);

            await _context.SaveChangesAsync(cancellationToken);

            return(vehicle.VehicleId);
        }
 public void Setup()
 {
     validVehicle = new Domain.Entities.Vehicle(1, "honda", "Civic", "prata", "abc1234", 1);
 }
Example #5
0
 public IndexUserDto(AppUserId appUserId, string firstName, string lastName, Domain.Entities.Vehicle vehicle) : this(
         appUserId,
         firstName, lastName)
     => Vehicle = vehicle is null ? null : new IndexVehicleDto(vehicle.Name);