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