Beispiel #1
0
 public IActionResult CreateOwner([FromBody] OwnerCreateDto owner)
 {
     try
     {
         if (owner == null)
         {
             _logger.LogError("Owner object sent from client is null.");
             return(BadRequest("Owner object is null"));
         }
         if (!ModelState.IsValid)
         {
             _logger.LogError("Invalid owner object sent from client.");
             return(BadRequest("Invalid model object"));
         }
         var ownerEntity = _mapper.Map <Owner>(owner);
         _repository.Owner.CreateOwner(ownerEntity);
         _repository.Commit();
         var createdOwner = _mapper.Map <OwnerViewModel>(ownerEntity);
         // CreatedAtRoute return 201 for creation so we can see this is a create operation.
         return(CreatedAtRoute("OwnerById", new { id = createdOwner.Id }, createdOwner));
     }
     catch (Exception ex)
     {
         _logger.LogError($"Something went wrong inside CreateOwner action: {ex.Message}");
         return(StatusCode(500, "Internal server error"));
     }
 }
        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));
            }
        }