Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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
                });
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }