예제 #1
0
        protected ActionResult CustomizarResponse(object result = null)
        {
            if (OperacaoValida())
            {
                return(Ok(new
                {
                    Sucesso = true,
                    Data = result
                }));
            }

            return(BadRequest(new
            {
                Sucesso = false,
                Erros = _notificador.ObterNotificacoes().Select(e => e.Mensagem)
            }));
        }
        protected ActionResult CustomResponse(object result = null)
        {
            if (IsValidOperation())
            {
                return(Ok(new ResponseViewModel
                {
                    Success = true,
                    Data = result
                }));
            }

            return(BadRequest(new ResponseViewModel
            {
                Success = false,
                Errors = _notificador.ObterNotificacoes().Select(n => n.Mensagem).ToArray()
            }));
        }
        protected ActionResult CustomResponse(object result = null)
        {
            if (OperacaoValida())
            {
                return(Ok(new
                {
                    success = true,
                    data = result
                }));
            }

            return(BadRequest(new
            {
                success = false,
                errors = _notificador.ObterNotificacoes().Select(n => n.Mensagem)
            }));
        }
예제 #4
0
        //CustomResponse que valida se existe algum tipo de operação independente de onde ela surgiu e retorna um Ok
        //caso tenha, eu retorno uma lista de mensagens para o cliente
        protected ActionResult CustomResponse(object result = null)
        {
            if (OperacaoValida())
            {
                return Ok(new
                {
                    success = true,
                    data = result
                });
            }

            return BadRequest(new
            {
                success = false,
                errors = _notificador.ObterNotificacoes()
                    .Select(n => n.Mensagem) //criando uma lista de mensagens dentro do errors
            });
        }
예제 #5
0
        protected ActionResult Result(object obj = null)
        {
            //Validações Ok
            if (!_notificador.TemNotificacao())
            {
                return(Ok(new
                {
                    sucesso = true,
                    Data = obj
                }));
            }

            return(BadRequest(new
            {
                sucesso = false,
                erros = _notificador.ObterNotificacoes().Select(n => n.Mensagem)
            }));
        }
예제 #6
0
        // DESAFIO usar uma classe wrapper para padronizar a saida
        protected ActionResult CustomResponse(object result = null)
        {
            if (OperacaoValida())
            {
                return(Ok(new
                {
                    success = true,
                    data = result
                }));
            }

            return(BadRequest(new
            {
                success = false,
                errors = _notificador.ObterNotificacoes().Select(n => n.Mensagem)
                         // Dependendo da forma como precisar ser tratada no front
                         //errors = _notificador.ObterNotificacoes().ToDictionary(n => n.Campo, n => n.Mensagem)
            }));
        }
 protected ActionResult CustomResponse(Object result = null)
 {
     if (OperacaoValida())
     {
         return(Ok(new
         {
             success = true,
             data = result
         }));
     }
     else
     {
         return(BadRequest(new
         {
             success = false,
             data = _notificador.ObterNotificacoes().Select(m => m.Message)
         }));
     }
 }
예제 #8
0
        public async Task <IActionResult> OnPostAsync(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Fornecedor = _mapper.Map <FornecedorViewModel>(await _fornecedorRepository.ObterPorId(id.Value));

            if (Fornecedor != null)
            {
                var result = await _fornecedorService.Remover(Fornecedor.Id);

                if (result == false)
                {
                    _errorMensagens = _notificador.ObterNotificacoes(); return(null);
                }
            }

            return(RedirectToPage("./Index"));
        }
예제 #9
0
        public ActionResult <EnderecoViewModel> AdicionarEndereco([FromBody] EnderecoViewModel enderecoViewModel)
        {
            if (!ModelState.IsValid)
            {
                var erros = ModelState.Values.SelectMany(e => e.Errors);
                foreach (var erro in erros)
                {
                    var errorMsg = erro.Exception == null ? erro.ErrorMessage : erro.Exception.Message;
                    _notificador.Adicionar(errorMsg);
                }

                return(BadRequest(new { Error = _notificador.ObterNotificacoes().Select(n => n.Mensagem) }));
            }

            var endereco = _mapper.Map <Endereco>(enderecoViewModel);

            _enderecoService.Adicionar(endereco);

            var enderecoViewModelResult = _mapper.Map <EnderecoViewModel>(endereco);

            return(Ok(enderecoViewModelResult));
        }
예제 #10
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            try
            {
                var result = await _produtoService.Adicionar(_mapper.Map <Produto>(Produto));

                if (result == false)
                {
                    _errorMensagens = _notificador.ObterNotificacoes(); return(null);
                }
            }
            catch (DbUpdateException ex)
            {
                _errorException = ex.Message;
            }

            return(RedirectToPage("./Index"));
        }
예제 #11
0
        protected HttpResponseMessage CustomResponse(object result = null)
        {
            HttpResponseMessage resultado = new HttpResponseMessage();

            if (OperacaoValida())
            {
                resultado = Request.CreateResponse(HttpStatusCode.OK, new
                {
                    success = true,
                    data    = result
                });

                return(resultado);
            }

            resultado = Request.CreateResponse(HttpStatusCode.BadRequest, new
            {
                success = false,
                errors  = _notificador.ObterNotificacoes().Select(n => n.Mensagem)
            });

            return(resultado);
        }
예제 #12
0
        protected ActionResult CustomResponse(object result = null, ETipoAcao tipoAcao = ETipoAcao.Selecionar)
        {
            if (OperacaoValida())
            {
                switch (tipoAcao)
                {
                case ETipoAcao.Selecionar:     // HTTP Code 200
                    return(Ok(new CustomResult(true, result)));

                case ETipoAcao.Adicionado:    // HTTP Code 201
                    if (result is MainViewModel mainView)
                    {
                        return(Created(new Uri($"{Url.ActionContext.HttpContext.Request.Scheme}://{Url.ActionContext.HttpContext.Request.Host}{Url.ActionContext.HttpContext.Request.Path}/{mainView.Id}"), new CustomResult(true, result)));
                    }

                    return(Created(new Uri($"{Url.ActionContext.HttpContext.Request.Scheme}://{Url.ActionContext.HttpContext.Request.Host}{Url.ActionContext.HttpContext.Request.Path}"), new CustomResult(true, result)));

                case ETipoAcao.Atualizado:    // HTTP Code 204
                    return(new CustomNoContentResult(new CustomResult(true, result)));

                case ETipoAcao.Excluido:    // HTTP Code 204
                    return(new CustomNoContentResult(new CustomResult(true, "Objeto excluido com sucesso")));

                case ETipoAcao.NaoEncontrado:    // HTTP Code 404
                    return(NotFound(new CustomResult(false, "Objeto nâo foi encontrado")));

                case ETipoAcao.ModeloInvalido:    // HTTP Code 400
                    return(BadRequest(new CustomResult(false, result)));

                default:
                    throw new ArgumentOutOfRangeException(nameof(tipoAcao), tipoAcao, null);
                }
            }

            return(BadRequest(new CustomResult(false, _notificador.ObterNotificacoes().Select(n => n.Mensagem))));
        }
예제 #13
0
        public async Task <IActionResult> DeleteConfirmed(Guid id)
        {
            var fornecedorViewModel = await ObterFornecedorEndereco(id);

            if (fornecedorViewModel == null)
            {
                return(NotFound());
            }

            await _fornecedorService.Remover(id);

            if (!OperacaoValida())
            {
                if (_notificador.TemNotificacao())
                {
                    foreach (var item in _notificador.ObterNotificacoes())
                    {
                        TempData["Erro"] = item.Mensagem;
                    }
                }
            }

            return(RedirectToAction(nameof(Index)));
        }
예제 #14
0
 public static object GetErrorValidacao(INotificador notificador)
 {
     return(new { Error = notificador.ObterNotificacoes().Select(x => x.Mensagem) });
 }
 protected object Notificacoes()
 {
     return(new { errors = _notificador.ObterNotificacoes().ToArray() });
 }
예제 #16
0
 protected bool OperacaoValida()
 {
     return(!_notificador.TemNotificacao() || _notificador.ObterNotificacoes().TrueForAll(x => x.Sucesso == 2));
 }
        public async Task <ActionResult> Registrar([FromBody] ContaRegistroModel model)
        {
            if (await _contaServico.Registrar(model))
            {
                await _contaServico.Logar(new ContaLoginModel { Email = model.Email, Senha = model.Senha });

                return(Ok(new OkAuthResponse("Usuário registrado com sucesso", token: await _jwtServico.GerarToken(model.Email))));
            }
            return(BadRequest(new BadRequestResponse("Não foi possível registrar o usuário", _notificador.ObterNotificacoes(), model)));
        }
예제 #18
0
 protected IEnumerable <Notificacao> GetErros()
 {
     return(_notificador.ObterNotificacoes());
 }