Beispiel #1
0
        public async Task <IActionResult> AdicionarContaCorrente()
        {
            var contaCorrenteDominio = await _servicoAplicacaoContaCorrente.AdicionarContaCorrenteAssincrono();

            var retorno = new ModeloVisaoRetorno <ModeloVisaoContaCorrente>
            {
                ObjetoDeRetorno = _mapper.Map <ModeloVisaoContaCorrente>(contaCorrenteDominio)
            };

            return(CreatedAtAction(nameof(ObterContaCorrente), new { codigo = contaCorrenteDominio.Codigo }, retorno));
        }
Beispiel #2
0
        public async Task <IActionResult> ObterUsuario(string usuarioId)
        {
            if (usuarioId is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var retorno = new ModeloVisaoRetorno <ModeloVisaoUsuario>();

            var usuarioDominio = await _servicoAplicacaoUsuario.BuscarUsuarioAssincrono(usuarioId);

            retorno.ObjetoDeRetorno = _mapper.Map <ModeloVisaoUsuario>(usuarioDominio);

            return(Ok(retorno));
        }
Beispiel #3
0
        public async Task <IActionResult> ObterContaCorrente(string codigo)
        {
            if (codigo is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var contaCorrenteDominio = await _servicoAplicacaoContaCorrente.BuscarContaCorrenteAssincrono(codigo);

            var retorno = new ModeloVisaoRetorno <ModeloVisaoContaCorrente>
            {
                ObjetoDeRetorno = _mapper.Map <ModeloVisaoContaCorrente>(contaCorrenteDominio)
            };

            return(Ok(retorno));
        }
Beispiel #4
0
        public async Task <IActionResult> AdicionarUsuario(
            [FromBody] VisaoModeloUsuario novoUsuario)
        {
            if (novoUsuario is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var retorno = new ModeloVisaoRetorno <ModeloVisaoUsuario>();

            var usuario = _mapper.Map <Usuario>(novoUsuario);

            var usuarioDominio = await _servicoAplicacaoUsuario.AdicionarUsuarioAssincrono(usuario);

            retorno.ObjetoDeRetorno = _mapper.Map <ModeloVisaoUsuario>(usuarioDominio);

            return(CreatedAtAction(nameof(ObterUsuario), new { usuarioId = usuarioDominio.UsuarioId }, retorno));
        }
Beispiel #5
0
        /// <summary>
        /// Acionada quando ocorrer um erro
        /// </summary>
        /// <param name="context"></param>
        public override void OnException(ExceptionContext context)
        {
            var coreError     = context.Exception is ExcecaoDominio;
            var mvcController = context.ActionDescriptor.RouteValues["controller"];
            var mvcAction     = context.ActionDescriptor.RouteValues["action"];
            var errorMessage  = $"{context.Exception.Message}{context.Exception.InnerException?.Message}";

            var resultado = new ModeloVisaoRetorno <ModeloVisaoErro>
            {
                Mensagem = "Erro",
                Sucesso  = false,
#if DEBUG
                ObjetoDeRetorno = new ModeloVisaoErro()
                {
                    Core       = coreError,
                    Controller = mvcController,
                    Action     = mvcAction,
                    Mensagem   = errorMessage
                },
#else
                ObjetoDeRetorno = new ModeloVisaoErro()
                {
                    Core       = false,
                    Controller = null,
                    Action     = null,
                    Mensagem   = "Erro"
                },
#endif
            };

            if (coreError)
            {
                TratarExcecaoDominio((ExcecaoDominio)context.Exception, context, resultado);
            }
            else
            {
                context.Result = new ErroInternoServidorObjectResult(resultado);
                _logger.LogError(context.Exception, "Erro interno");
            }
        }
Beispiel #6
0
        public async Task <IActionResult> RealizarLogin(
            [FromBody] VisaoModeloUsuarioLogin loginUsuario,
            [FromServices] IGeradorToken geradorToken)
        {
            if (loginUsuario is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var objRetorno = new ModeloVisaoRetorno <ModeloVisaoToken>();

            var usuario = _mapper.Map <Usuario>(loginUsuario);

            var usuarioAutenticado = await _servicoAplicacaoUsuario.RealizarLoginUsuario(usuario);

            objRetorno.ObjetoDeRetorno = new ModeloVisaoToken()
            {
                Token     = geradorToken.GerarToken(usuarioAutenticado),
                Nome      = usuarioAutenticado.Nome,
                UsuarioId = usuarioAutenticado.UsuarioId
            };

            return(Ok(objRetorno));
        }
Beispiel #7
0
 private static void TratarExcecaoDominio(ExcecaoDominio excecao, ExceptionContext ctx, ModeloVisaoRetorno <ModeloVisaoErro> retorno)
 {
     if (excecao is ExcecaoDominioObjetoNaoEncontrado)
     {
         ctx.Result = new NaoEncontradoObjectResult(retorno);
     }
     else if (excecao is ExcecaoDominioUsuarioNaoEncontrado)
     {
         ctx.Result = new NaoAutorizadoObjectResult(retorno);
     }
     else
     {
         ctx.Result = new ConflitoObjectResult(retorno);
     }
 }