public async Task <ActionResult <PetDto> > AddPet([FromBody] PetForCreationDto petForCreation) { var validationResults = new PetForCreationDtoValidator().Validate(petForCreation); validationResults.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(BadRequest(new ValidationProblemDetails(ModelState))); //return ValidationProblem(); } var pet = _mapper.Map <Pet>(petForCreation); await _petRepository.AddPet(pet); var saveSuccessful = await _petRepository.SaveAsync(); if (saveSuccessful) { var petFromRepo = await _petRepository.GetPetAsync(pet.PetId); var petDto = _mapper.Map <PetDto>(petFromRepo); var response = new Response <PetDto>(petDto); return(CreatedAtRoute("GetPet", new { petDto.PetId }, response)); } return(StatusCode(500)); }
public async Task <ActionResult <PetDto> > AddPet(PetForCreationDto petForCreation) { var validationResults = new PetForCreationDtoValidator().Validate(petForCreation); validationResults.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(BadRequest(new ValidationProblemDetails(ModelState))); //return ValidationProblem(); } var pet = _mapper.Map <Pet>(petForCreation); _petRepository.AddPet(pet); var saveSuccessful = await _petRepository.SaveAsync(); if (saveSuccessful) { var petDto = await _petRepository.GetPetAsync(pet.PetId); //get from repo for fk object, if needed return(CreatedAtRoute("GetPet", new { petDto.PetId }, petDto)); } return(StatusCode(500)); }
public ActionResult <PetFullDto> CreatePet(PetForCreationDto pet) { var petEntity = _mapper.Map <Pet>(pet); petEntity.Create(Account.Id); _unitOfWork.Pets.Add(petEntity); _unitOfWork.Complete(Account.Id); var petEntityFromRepo = _unitOfWork.Pets.Get(petEntity.Id); var petToReturn = _mapper.Map <PetFullDto>(petEntityFromRepo); var resourceToReturn = petToReturn.ShapeData(null); return(CreatedAtRoute("GetPet", new { petId = petEntity.Id }, resourceToReturn)); }