public async Task <ActionResult <PersonGetDto> > PostPerson(PersonPostDto personDto) { try { var person = _mapper.Map <Person>(personDto); _context.Persons.Add(person); await _context.SaveChangesAsync(); var personGetDto = _mapper.Map <PersonGetDto>(person); return(CreatedAtAction(nameof(GetPerson), new { id = personGetDto.PersonId }, personGetDto)); } catch (DbUpdateException e) { if (e.InnerException != null && e.InnerException is SqlException) { if (((SqlException)e.InnerException).Number == 2601) { return(BadRequest("No se puede insertar personas duplicadas, revisar documentacion")); } } return(StatusCode(500)); } catch { return(StatusCode(500)); } }
public async Task <PersonDto> Save(PersonPostDto person) { var personEntity = _mapper.Map <PersonPostDto, Person>(person); _unitOfWork.PersonRepository.CreatePerson(personEntity); await _unitOfWork.Commit(); return(_mapper.Map <Person, PersonDto>(personEntity)); }
public async Task <PersonDto> Create([FromBody] PersonPostDto person) { return(await _personService.Save(person)); }