示例#1
0
        public HttpResponseMessage Post([FromBody] UsuarioCreationDto usuario)
        {
            if (usuario == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            if (usuario.Nome == usuario.Sobrenome)
            {
                ModelState.AddModelError("Sobrenome", "O sobrenome informado deverá ser diferente do nome...");
            }

            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            var finalUsuario = AutoMapper.Mapper.Map <Entities.Usuario>(usuario);

            _usuarioRepository.AddUsuario(finalUsuario);

            if (!_usuarioRepository.Save())
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Ocorreu um problema com a sua solicitação..."));
            }

            _usuarioRepository.AddDetalheUsuario(finalUsuario.Id, new Entities.DetalheUsuario()
            {
                UsuarioId = finalUsuario.Id, Telefone = usuario.Telefone, Endereco = usuario.Endereco
            });
            if (!_usuarioRepository.Save())
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Ocorreu um problema com a sua solicitação..."));
            }
            var createUsuarioToReturn = AutoMapper.Mapper.Map <ViewModels.UsuarioDto>(finalUsuario);

            return(Request.CreateResponse(HttpStatusCode.Created, createUsuarioToReturn));
        }