Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }