public async Task <ActionResult <VehicleToReturnDto> > AddVehicleOwner(int id, OwnerCreateDto ownerCreateDto)
        {
            var validator = new OwnerValidator();
            var res       = validator.Validate(ownerCreateDto);

            if (res.IsValid)
            {
                var owner   = _mapper.Map <OwnerCreateDto, Owner>(ownerCreateDto);
                var spec    = new VehiclesSpecification(id);
                var vehicle = await _unitOfWork.Repository <Vehicle>().GetEntityWithSpec(spec);

                _unitOfWork.Repository <Owner>().Add(owner);
                var result = await _unitOfWork.Complete();

                if (result <= 0)
                {
                    return(BadRequest(new ApiResponse(400, "Problem creating owner")));
                }

                vehicle.AddOwner(owner.Id, id);
                _unitOfWork.Repository <Vehicle>().Update(vehicle);
                var result2 = await _unitOfWork.Complete();

                if (result2 <= 0)
                {
                    return(BadRequest(new ApiResponse(400, "Problem adding owner vehicle")));
                }

                return(_mapper.Map <Vehicle, VehicleToReturnDto>(vehicle));
            }
            else
            {
                return(BadRequest(res.Errors));
            }
        }
        public override IEnumerable <ValidationResult> Validate(BaseCommand command)
        {
            List <ValidationResult> validationResults   = new List <ValidationResult>();
            OwnerValidator          ownerValidator      = new OwnerValidator(_config);
            NoParametersValidator   parametersValidator = new NoParametersValidator(_config);

            validationResults.Add(ownerValidator.Validate(command));
            validationResults.Add(parametersValidator.Validate(command));
            return(validationResults);
        }
 public OwnerValidatorTests()
 {
     _validator = new OwnerValidator();
     _random    = new Random();
     _model     = new OwnerViewModel();
 }