public static ListarAvaliacoesProdutosRS ListarAvaliacoesProdutosValidar(this ListarAvaliacoesProdutosRQ request) { var response = new ListarAvaliacoesProdutosRS(); 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 (string.IsNullOrEmpty(request.PrdCodigo)) { response.AdicionarMensagemErro("PrdCodigo", "PrdCodigo não informado", 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 <ListarAvaliacoesProdutosRS> ListarAvaliacoesProdutos(ListarAvaliacoesProdutosRQ request) { ListarAvaliacoesProdutosRS response = request.ListarAvaliacoesProdutosValidar(); try { if (response.Valido) { if (response.Mensagens.All(m => m.Tipo == TipoMensagem.Negocio)) { response = await avaliacaoService.AvaliacoesProdutosListar(request); if (response.Avaliacoes.Any() && response.Avaliacoes.Any()) { //int totalAvaliacoes = response.AvaliacaoGeral.TotalAvaliacoes; //double mp = 0; //mp = mp + (response.AvaliacaoGeral.Total1Estrela * 1); //mp = mp + (response.AvaliacaoGeral.Total2Estrela * 2); //mp = mp + (response.AvaliacaoGeral.Total3Estrela * 3); //mp = mp + (response.AvaliacaoGeral.Total4Estrela * 4); //mp = mp + (response.AvaliacaoGeral.Total5Estrela * 5); ////MP = TOTAL ESTRELA * PESO(ESTRELA)//MEDIA = MP/total distribuido / //if (totalAvaliacoes > 0 && mp > 0) //{ // response.AvaliacaoGeral.TotalAvaliacoes = totalAvaliacoes; // double PontuacaoMedia = (mp / totalAvaliacoes); // response.AvaliacaoGeral.AvaliacaoGeral = Math.Round(PontuacaoMedia, 1); //} //if (response.AvaliacaoGeral.TotalRecomendaProduto > 0 && totalAvaliacoes > 0) //{ // response.AvaliacaoGeral.TotalRecomendaProduto = Math.Round(100 * response.AvaliacaoGeral.TotalRecomendaProduto / totalAvaliacoes); //} } else { response.Valido = false; response.AdicionarMensagemErro("sem resultados", "não tem avaliações", TipoMensagem.NenhumErro); } } } } catch (Exception ex) { var jsonRequest = JsonConvert.SerializeObject(request); logService.AdicionarLogErro("ListarAvaliacoesPagina", 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); }