public async Task <EnviarAvaliacaoProdutoRS> AdicionarAvaliacaoProduto(EnviarAvaliacaoProdutoRQ request) { EnviarAvaliacaoProdutoRS response = request.AdicionarAvaliacaoProdutoValidar(); try { if (response.Valido) { if (response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio)) { var addAvaliacao = await avaliacaoService.EnviarAvaliacaoProduto(request); response.CodigoRetorno = addAvaliacao; } } } catch (Exception ex) { var jsonRequest = JsonConvert.SerializeObject(request); logService.AdicionarLogErro("AdicionarAvaliacaoProduto", 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 EnviarAvaliacaoProdutoRS AdicionarAvaliacaoProdutoValidar(this EnviarAvaliacaoProdutoRQ request) { var response = new EnviarAvaliacaoProdutoRS(); response.Mensagens = new System.Collections.Generic.List <Mensagem>(); response.ProtocoloRetorno = Guid.NewGuid(); if (request == null && request.Avaliacao == null && request.Loja == null && request.Produto == null) { response.AdicionarMensagemErro(CodigoMensagem.REQUEST_INVALIDO.CodigoErro, CodigoMensagem.REQUEST_INVALIDO.Descricao, TipoMensagem.ErroValidacao); response.Valido = false; return(response); } 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.Loja.LojaCodigo) && request.Loja.LojaCodigo.ToLower().Equals("string")) { response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_ID_LOJA.CodigoErro, CodigoMensagem.NAO_INFORMADO_ID_LOJA.Descricao, TipoMensagem.ErroValidacao); } if (string.IsNullOrEmpty(request.Loja.LojaNome)) { response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_NOME_LOJA.CodigoErro, CodigoMensagem.NAO_INFORMADO_NOME_LOJA.Descricao, TipoMensagem.ErroValidacao); } if (!string.IsNullOrEmpty(request.Loja.LojaNome) && request.Loja.LojaNome.ToLower().Equals("string")) { response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_NOME_LOJA.CodigoErro, CodigoMensagem.NAO_INFORMADO_NOME_LOJA.Descricao, TipoMensagem.ErroValidacao); } if (request.Produto.PrdCodigo.IsEmptyOrWhiteSpace()) { response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_CAMPOS.CodigoErro, CodigoMensagem.NAO_INFORMADO_CAMPOS.SetFormat("PrdCodigo").Descricao, TipoMensagem.ErroValidacao); } if (request.Avaliacao.ClienteClassificacao <= 0 || request.Avaliacao.ClienteClassificacao > 5) { response.AdicionarMensagemErro(CodigoMensagem.AVALIACAO_GERAL_INVALIDO.CodigoErro, CodigoMensagem.AVALIACAO_GERAL_INVALIDO.Descricao, TipoMensagem.ErroValidacao); } if (string.IsNullOrWhiteSpace(request.Avaliacao.ClienteEmail.IfEmptyOrWhiteSpace("")) || string.IsNullOrWhiteSpace(request.Avaliacao.ClienteNome.IfEmptyOrWhiteSpace("")) || string.IsNullOrWhiteSpace(request.Avaliacao.ClienteComentario.IfEmptyOrWhiteSpace(""))) { response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_CAMPOS.CodigoErro, CodigoMensagem.NAO_INFORMADO_CAMPOS.SetFormat("Nome, email ou comentários").Descricao, TipoMensagem.ErroValidacao); } response.Valido = response.Mensagens.Count == 0; return(response); }
public async Task <EnviarAvaliacaoProdutoRS> EnviarAvaliacaoProduto(EnviarAvaliacaoProdutoRQ request) { try { if (request.Authorization == null) { var token = Request.Headers.GetValues("Authorization").FirstOrDefault(); request.Authorization = token; } var container = new UnityContainer(); container.RegisterType <IClienteRepository, ClienteRepository>(); var clienteService = container.Resolve <ClienteRepository>(); if (!clienteService.CheckTokenAuthorization(request.Authorization)) { return(new EnviarAvaliacaoProdutoRS { CodigoRetorno = 401, Mensagens = new List <Messages.Mensagem> { new Messages.Mensagem { Descricao = "Token invalido", Tipo = Messages.TipoMensagem.ErroAplicacao, CodigoErro = "-1" } }, Valido = false, StatusCode = System.Net.HttpStatusCode.BadRequest }); } return(await _avaliacaoService.AdicionarAvaliacaoProduto(request)); } catch (Exception ex) { return(new EnviarAvaliacaoProdutoRS { CodigoRetorno = 400, Mensagens = new List <Messages.Mensagem> { new Messages.Mensagem { Descricao = ex.Message, Tipo = Messages.TipoMensagem.ErroAplicacao, CodigoErro = "-1" } }, Valido = false, StatusCode = System.Net.HttpStatusCode.BadRequest }); } }
/// <summary> /// Adicionar avaliação de produto /// </summary> /// <param name="entity"></param> /// <returns></returns> public async Task <int> EnviarAvaliacaoProduto(EnviarAvaliacaoProdutoRQ entity) { object[] xParams = { new SqlParameter("@RETURN_VALUE", DbType.Int32) { Direction = ParameterDirection.Output }, new SqlParameter("@APIKey", entity.Authorization), new SqlParameter("@ClienteNome", entity.Avaliacao.ClienteNome), new SqlParameter("@ClienteEmail", entity.Avaliacao.ClienteEmail), new SqlParameter("@ClienteLocalizacao", entity.Avaliacao.ClienteLocalizacao.ToNullString()), new SqlParameter("@ClienteTitulo", entity.Avaliacao.ClienteTitulo), new SqlParameter("@ClienteComentario", entity.Avaliacao.ClienteComentario), new SqlParameter("@ClienteClassificacao", entity.Avaliacao.ClienteClassificacao), new SqlParameter("@ClienteRecomenda", entity.Avaliacao.ClienteRecomenda), new SqlParameter("@ClienteVerificado", false), //dados do produto. new SqlParameter("@PrdNome", entity.Produto.PrdNome.ToNullString()), new SqlParameter("@PrdCodigo", entity.Produto.PrdCodigo.ToNullString()), new SqlParameter("@PrdDepartamento", entity.Produto.PrdDepartamento.ToNullString()), new SqlParameter("@PrdCategoria", entity.Produto.PrdCategoria.ToNullString()), new SqlParameter("@PrdSubCategoria", entity.Produto.PrdSubCategoria.ToNullString()), new SqlParameter("@PrdMarca", entity.Produto.PrdMarca.ToNullString()), new SqlParameter("@PrdLink", entity.Produto.PrdLink.ToNullString()), new SqlParameter("@PrdImagemProduto", entity.Produto.PrdImagemProduto.ToNullString()), //dados da loja. new SqlParameter("@NOME_LOJA", entity.Loja.LojaNome.ToNullString()), new SqlParameter("@CODIGO_LOJA", entity.Loja.LojaCodigo), new SqlParameter("@MKTPLACE", entity.Loja.LojaMarketPlace), }; await DataContext.Database.ExecuteSqlCommandAsync("exec AvaliacaoProdutoAdicionar @RETURN_VALUE OUTPUT, @APIKey,@ClienteNome,@ClienteEmail,@ClienteLocalizacao,@ClienteTitulo,@ClienteComentario,@ClienteClassificacao,@ClienteRecomenda,@ClienteVerificado,@PrdNome,@PrdCodigo,@PrdDepartamento,@PrdCategoria,@PrdSubCategoria,@PrdMarca,@PrdLink,@PrdImagemProduto,@NOME_LOJA,@CODIGO_LOJA,@MKTPLACE", xParams); object idRetorno = ((SqlParameter)xParams[0]).Value; if (!idRetorno.Equals(DBNull.Value)) { return((int)idRetorno); } return(0); }