예제 #1
0
        public async void Enviar(object obj, ETipoAcao acao)
        {
            if (_config == null || string.IsNullOrWhiteSpace(_config.CaminhoApi))
            {
                return;
            }

            string sUrl = string.Empty;

            switch (obj)
            {
            case ProdutoModel _:
                sUrl = "produto";
                break;

            case EstoqueModel _:
                sUrl = "estoque";
                break;
            }

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(_config.CaminhoApi);
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                await client.PostAsJsonAsync($"{sUrl}/sincronizar", new SyncModel { Item = JsonConvert.SerializeObject(obj), Acao = acao });
            }
        }
예제 #2
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))));
        }
예제 #3
0
 /// <summary>
 /// Metodo que verifica se usuario tem determinada permissão
 /// </summary>
 /// <param name="acao"></param>
 /// <returns></returns>
 public Boolean ContemPermissao(ETipoAcao acao)
 {
     return UsuarioLogado.PerfilAcesso.Acoes.Any(x => x.TipoAcao == acao);
 }