Beispiel #1
0
        public async Task <PerguntasERespostasRS> EnviarPergunta(PerguntasERespostasRQ request)
        {
            try
            {
                if (request.Authorization == null)
                {
                    var token = Request.Headers.GetValues("Authorization").FirstOrDefault();
                    request.Authorization = token;
                }

                return(await _qaService.EnviarPergunta(request));
            }
            catch (Exception)
            {
                return(new PerguntasERespostasRS
                {
                    CodigoRetorno = 400,
                    Mensagens = new List <Messages.Mensagem> {
                        new Messages.Mensagem {
                            Descricao = "Token invalido", Tipo = Messages.TipoMensagem.ErroAplicacao, CodigoErro = "-1"
                        }
                    },
                    Valido = false,
                    StatusCode = System.Net.HttpStatusCode.BadRequest
                });
            }
        }
Beispiel #2
0
        public async Task <PerguntasERespostasRS> EnviarPergunta(PerguntasERespostasRQ request)
        {
            PerguntasERespostasRS response = request.ValidarEnviarPergunta(clienteService);

            try
            {
                if (response.Valido)
                {
                    if (response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio))
                    {
                        var idRetorno = await qaRepository.AddQAAsync(request);

                        response.CodigoRetorno = idRetorno;
                    }
                }
            }
            catch (Exception ex)
            {
                var jsonRequest = JsonConvert.SerializeObject(request);
                logService.AdicionarLogErro("EnviarPergunta", response.ProtocoloRetorno.ToString(), CodigoMensagem.ERRO_APLICAO.CodigoErro, CodigoMensagem.ERRO_APLICAO.SetFormat(string.Format("MENSAGEM={0}\nINNER_EXCEPTION={1}\nSTACK_TRACE={2}\n JSON REQUEST=={3}", ex.Message, (ex.InnerException != null ? ex.InnerException.ToString() : ""), ex.StackTrace.ToString()), jsonRequest).Descricao, TipoMensagem.ErroAplicacao);
                response.AdicionarMensagemErro(CodigoMensagem.ERRO_APLICAO_GENERICO.CodigoErro, CodigoMensagem.ERRO_APLICAO_GENERICO.Descricao, TipoMensagem.ErroAplicacao);
            }

            response.Valido = response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio);

            return(response);
        }
Beispiel #3
0
        public static PerguntasERespostasRS ValidarEnviarPergunta(this PerguntasERespostasRQ request, IClienteRepository clienteService)
        {
            var response = new PerguntasERespostasRS();

            response.Mensagens        = new List <Mensagem>();
            response.ProtocoloRetorno = Guid.NewGuid();

            if (response.Mensagens.Count == 0 && (request != null && request.Produto != null && request.Loja != null))
            {
                if (string.IsNullOrEmpty(request.Authorization))
                {
                    response.AdicionarMensagemErro(CodigoMensagem.TOKEN_VAZIO.CodigoErro, CodigoMensagem.TOKEN_VAZIO.Descricao, TipoMensagem.ErroValidacao);
                }

                if (string.IsNullOrEmpty(request.Loja.LojaCodigo))
                {
                    response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_ID_LOJA.CodigoErro, CodigoMensagem.NAO_INFORMADO_ID_LOJA.Descricao, TipoMensagem.ErroValidacao);
                }
                if (string.IsNullOrEmpty(request.ClienteEmail) || string.IsNullOrEmpty(request.ClienteNome) || string.IsNullOrEmpty(request.ClientePergunta))
                {
                    response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_CAMPOS.CodigoErro, CodigoMensagem.NAO_INFORMADO_CAMPOS.SetFormat("Nome, email ou pergunta").Descricao, TipoMensagem.ErroValidacao);
                }
            }
            else
            {
                response.AdicionarMensagemErro(CodigoMensagem.REQUEST_INVALIDO.CodigoErro, CodigoMensagem.REQUEST_INVALIDO.Descricao, TipoMensagem.ErroValidacao);
            }

            response.Valido = response.Mensagens.Count == 0;
            return(response);
        }
Beispiel #4
0
        public async Task <int> AddQAAsync(PerguntasERespostasRQ request)
        {
            object[] xParams =
            {
                new SqlParameter("@RETURN_VALUE",       DbType.Int32)
                {
                    Direction = ParameterDirection.Output
                },
                new SqlParameter("@APIKey",             request.Authorization),
                new SqlParameter("@ClienteNome",        request.ClienteNome),
                new SqlParameter("@ClienteEmail",       request.ClienteEmail),
                new SqlParameter("@ClienteLocalizacao", request.ClienteLocalizacao.ToNullString()),
                new SqlParameter("@ClienteDuvida",      request.ClientePergunta),
                new SqlParameter("@LojaCodigo",         request.Loja.LojaCodigo),
                new SqlParameter("@LojaNome",           request.Loja.LojaNome.ToNullString()),
                new SqlParameter("@LojaMKTP",           request.Loja.LojaMarketPlace),
                new SqlParameter("@PrdNome",            request.Produto.PrdNome.ToNullString()),
                new SqlParameter("@PrdCodigo",          request.Produto.PrdCodigo),
                new SqlParameter("@PrdDepartamento",    request.Produto.PrdDepartamento.ToNullString()),
                new SqlParameter("@PrdCategoria",       request.Produto.PrdCategoria.ToNullString()),
                new SqlParameter("@PrdSubCategoria",    request.Produto.PrdSubCategoria.ToNullString()),
                new SqlParameter("@PrdMarca",           request.Produto.PrdMarca.ToNullString()),
                new SqlParameter("@PrdLink",            request.Produto.PrdLink.ToNullString()),
                new SqlParameter("@PrdImagemProduto",   request.Produto.PrdImagemProduto.ToNullString())
            };
            await DataContext.Database.ExecuteSqlCommandAsync("exec QAAdicionar @RETURN_VALUE OUTPUT, @APIKey, @ClienteNome, @ClienteEmail, @ClienteLocalizacao, @ClienteDuvida,@LojaCodigo,@LojaNome,@LojaMKTP,@PrdNome,@PrdCodigo,@PrdDepartamento,@PrdCategoria,@PrdSubCategoria,@PrdMarca,@PrdLink,@PrdImagemProduto", xParams);

            object idRetorno = ((SqlParameter)xParams[0]).Value;

            if (!idRetorno.Equals(DBNull.Value))
            {
                return((int)idRetorno);
            }

            return(0);
        }