public ActionResult PostUsuarios([FromBody] UsuarioParaAdicionarDto usuario)
        {
            if (usuario == null)
            {
                var erro = new
                {
                    Mensagem   = "É necessario informar um usuario",
                    StatusCode = 400
                };
                return(BadRequest(erro));
            }

            if (!ModelState.IsValid)
            {
                var erro = new
                {
                    Mensagem   = ModelState.Values,
                    StatusCode = 400
                };
                return(BadRequest(erro));
            }

            if (_repository.EmailJaExiste(usuario.Email))
            {
                var erro = new
                {
                    Mensagem   = "O email informado já está cadastrado",
                    StatusCode = 400
                };
                return(BadRequest(erro));
            }
            usuario.Senha = _repository.ToHash(usuario.Senha);
            var usuarioEntity = Mapper.Map <Usuario>(usuario);

            _repository.AdicionaUsuario(usuarioEntity);

            if (!_repository.Salvar())
            {
                var erro = new
                {
                    Mensagem   = "Houve um erro ao tentar salvar mudancas no banco",
                    StatusCode = 500
                };
                return(StatusCode(500, erro));
            }
            var usuarioCriado = Mapper.Map <UsuarioDto>(usuarioEntity);

            if (Request != null)
            {
                var uri = ((Request.IsHttps) ? "https://" : "http://")
                          + Request.Host.ToUriComponent()
                          + Request.Path.ToUriComponent() + "/"
                          + usuarioCriado.UsuarioId;

                return(Created(uri, usuarioCriado));
            }

            return(Created("ambiente de teste", usuarioCriado));
        }