Exemplo n.º 1
0
        public static ListarAvaliacoesLojasRS ListarAvaliacoesLojasValidar(this ListarAvaliacoesLojasRQ request)
        {
            var response = new ListarAvaliacoesLojasRS();

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

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

                if (request.ActualPageNumber <= 0)
                {
                    response.AdicionarMensagemErro(CodigoMensagem.NAO_INFORMADO_CAMPOS.CodigoErro, CodigoMensagem.NAO_INFORMADO_CAMPOS.SetFormat("PageNumber").Descricao, TipoMensagem.ErroValidacao);
                }
            }
            else
            {
                response.AdicionarMensagemErro(CodigoMensagem.REQUEST_INVALIDO.CodigoErro, CodigoMensagem.REQUEST_INVALIDO.Descricao, TipoMensagem.ErroValidacao);
            }

            response.Valido = response.Mensagens.Count == 0;
            return(response);
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> ListarAvaliacoesLojas([FromUri] ListarAvaliacoesLojasRQ request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            try
            {
                Uri referrer = Request.Headers.Referrer;
                if (referrer != null)
                {
                    string domain = referrer.GetLeftPart(UriPartial.Authority);
                }

                var token = Request.Headers.GetValues("Authorization").FirstOrDefault();
                request.Authorization = token;

                var avaliacoes = await _avaliacaoService.ListarAvaliacoesLojas(request);

                return(Ok(avaliacoes));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 3
0
        public async Task <ListarAvaliacoesLojasRS> ListarAvaliacoesLojas(ListarAvaliacoesLojasRQ request)
        {
            ListarAvaliacoesLojasRS response = request.ListarAvaliacoesLojasValidar();

            try
            {
                if (response.Valido)
                {
                    if (response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio))
                    {
                        response = await avaliacaoService.AvaliacoesLojasListar(request);

                        if (!response.Avaliacoes.Any())
                        {
                            response.Valido = false;
                            response.AdicionarMensagemErro("sem resultados", "não tem avaliações", TipoMensagem.NenhumErro);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var jsonRequest = JsonConvert.SerializeObject(request);
                logService.AdicionarLogErro("ListarAvaliacoesLojas", 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.StatusCode = System.Net.HttpStatusCode.BadRequest;
            }
            response.Valido     = response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio);
            response.StatusCode = System.Net.HttpStatusCode.OK;
            return(response);
        }
Exemplo n.º 4
0
        /// <summary>
        /// usado na avaliacoes de lojas
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ListarAvaliacoesLojasRS> AvaliacoesLojasListar(ListarAvaliacoesLojasRQ request)
        {
            var avaliacoes = new ListarAvaliacoesLojasRS();

            avaliacoes.Mensagens                 = new List <Mensagem>();
            avaliacoes.ProtocoloRetorno          = Guid.NewGuid();
            avaliacoes.Loja                      = new LojaDTO();
            avaliacoes.AvaliacaoGeral            = new AvaliacaoTotaisDTO();
            avaliacoes.Avaliacoes                = new List <AvaliacaoDTO>();
            avaliacoes.AvaliacaoNegativaMaisUtil = new AvaliacaoDTO();
            avaliacoes.AvaliacaoPositivaMaisUtil = new AvaliacaoDTO();
            avaliacoes.Pagination                = new PaginationDTO();

            using (var ctx = new DataBaseContext())
            {
                object[] xParams =
                {
                    new SqlParameter("@APIKey",    request.Authorization),
                    new SqlParameter("@CodLoja",   request.CodigoLoja),
                    new SqlParameter("PageNumber", request.ActualPageNumber),
                    new SqlParameter("@Filtro",    request.Filtro.ToNullString()),
                    new SqlParameter("@Busca",     request.Busca.ToNullString())
                };

                var db = await ctx.Database.SqlQuery <AvalialiacaoListarPaginaDataMapper>("exec AvaliacaoLojaListar @APIKey,@CodLoja,@PageNumber,@Filtro,@Busca", xParams).ToListAsync();

                if (db.Any())
                {
                    //avaliacoes.Loja.IdCliente = request.CodCliente;
                    avaliacoes.Loja.LojaCodigo = request.CodigoLoja;
                    avaliacoes.Loja.LojaNome   = db.FirstOrDefault().LojaNome;
                    avaliacoes.AvaliacaoGeral.TotalAvaliacoes       = db.FirstOrDefault().totalRows;
                    avaliacoes.AvaliacaoGeral.Total1Estrela         = db.FirstOrDefault().S1;
                    avaliacoes.AvaliacaoGeral.Total2Estrela         = db.FirstOrDefault().S2;
                    avaliacoes.AvaliacaoGeral.Total3Estrela         = db.FirstOrDefault().S3;
                    avaliacoes.AvaliacaoGeral.Total4Estrela         = db.FirstOrDefault().S4;
                    avaliacoes.AvaliacaoGeral.Total5Estrela         = db.FirstOrDefault().S5;
                    avaliacoes.AvaliacaoGeral.TotalRecomendaProduto = db.FirstOrDefault().TotalRecomenda;
                    avaliacoes.AvaliacaoGeral.PercentualRecomenda   = db.FirstOrDefault().PercentualRecomenda;

                    //paginacao
                    avaliacoes.Pagination.TotalRows         = db.FirstOrDefault().totalRows;
                    avaliacoes.Pagination.ActualPageNumber  = request.ActualPageNumber;
                    avaliacoes.Pagination.RowsPerPage       = (int)Math.Ceiling(avaliacoes.Pagination.TotalRows / (double)10);
                    avaliacoes.Pagination.BtnPaginationName = "btnAvalicaoGetPage";

                    if (db.FirstOrDefault().AP_IDREVIEW > 0 && db.FirstOrDefault().ANP_IDREVIEW > 0)
                    {
                        avaliacoes.AvaliacaoPositivaMaisUtil.IdAvaliacao          = db.FirstOrDefault().AP_IDREVIEW;
                        avaliacoes.AvaliacaoPositivaMaisUtil.ClienteNome          = db.FirstOrDefault().AP_NOME;
                        avaliacoes.AvaliacaoPositivaMaisUtil.ClienteComentario    = db.FirstOrDefault().AP_COMENT;
                        avaliacoes.AvaliacaoPositivaMaisUtil.ClienteClassificacao = db.FirstOrDefault().AP_CLASS;

                        avaliacoes.AvaliacaoNegativaMaisUtil.IdAvaliacao          = db.FirstOrDefault().ANP_IDREVIEW;
                        avaliacoes.AvaliacaoNegativaMaisUtil.ClienteNome          = db.FirstOrDefault().ANP_NOME;
                        avaliacoes.AvaliacaoNegativaMaisUtil.ClienteComentario    = db.FirstOrDefault().ANP_COMENT;
                        avaliacoes.AvaliacaoNegativaMaisUtil.ClienteClassificacao = db.FirstOrDefault().ANP_CLASS;
                    }

                    foreach (var item in db)
                    {
                        avaliacoes.Avaliacoes.Add(new AvaliacaoDTO
                        {
                            ClienteClassificacao = item.ClienteClassificacao,
                            ClienteTitulo        = item.ClienteTitulo,
                            ClienteComentario    = item.ClienteComentario,
                            DataAvaliacao        = item.ClienteDataAvaliacao,
                            ClienteLocalizacao   = item.ClienteLocalizacao,
                            ClienteNome          = item.ClienteNome,
                            ClienteRecomenda     = item.ClienteRecomenda,
                            ClienteVerificado    = item.ClienteVerificado,
                            IdAvaliacao          = item.IdAvaliacao,
                            QtdAjudou            = item.QtdAjudou,
                            QtdNaoAjudou         = item.QtdNaoAjudou
                        });
                    }
                }
            }
            return(avaliacoes);
        }