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 }); } }
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); }
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); }
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); }