public IPagedList <Evento> ListarCompleto(int pageNumber, int pageSize, string busca = null, int localID = 0, string estado = null, string cidade = null, int tipoID = 0, int subtipoID = 0, enumTipoPeriodo?tipoPeriodo = null, enumTipoDias tipoDias = enumTipoDias.todosDias, double?latitude = null, double?longitude = null, double distancia = 0, enumEventoOrdem ordem = enumEventoOrdem.dataAsc, bool multiplasQueries = false) { int quantidadeDias = (tipoPeriodo == null) ? 0 : tipoPeriodo.Value.ValueAsInt(); List <int> diasSemana = null; if (tipoDias == enumTipoDias.diasUteis) { diasSemana = ConfiguracaoAppUtil.GetAsListInt(enumConfiguracaoBO.eventoDiasUteis); } else if (tipoDias == enumTipoDias.finaisDeSemana) { diasSemana = ConfiguracaoAppUtil.GetAsListInt(enumConfiguracaoBO.eventoFinaisDeSemana); } IPagedList <Evento> eventos = null; if (multiplasQueries) { var apresentacaoBO = new ApresentacaoBO(); var precoBO = new PrecoBO(); eventos = ado.Listar(pageNumber, pageSize, busca, localID, estado, cidade, tipoID, subtipoID, quantidadeDias, diasSemana, latitude, longitude, distancia, ordem); foreach (var item in eventos) { item.EventoMidias = ListarEventoMidiaInEventoAsDictionary(item.IR_EventoID); item.Apresentacao = apresentacaoBO.Listar(item.IR_EventoID); foreach (var itemAp in item.Apresentacao) { itemAp.MenorPreco = precoBO.ConsultarMaiorMenorPorApresentacao(itemAp.IR_ApresentacaoID); if (itemAp.MenorPreco != null) { itemAp.MaiorPreco = precoBO.ConsultarMaiorMenorPorApresentacao(itemAp.IR_ApresentacaoID, false); if (item.MaiorPreco == null) { item.MaiorPreco = itemAp.MaiorPreco; item.MenorPreco = itemAp.MenorPreco; } else { if (itemAp.MaiorPreco.Valor > item.MaiorPreco.Valor) { item.MaiorPreco = itemAp.MaiorPreco; } if (itemAp.MenorPreco.Valor < item.MenorPreco.Valor) { item.MenorPreco = itemAp.MenorPreco; } } } if (item.PrimeiraApresentacao == null) { item.PrimeiraApresentacao = itemAp; } else if (itemAp.CalcHorario < item.PrimeiraApresentacao.CalcHorario) { if (item.UltimaApresentacao == null) { item.UltimaApresentacao = item.PrimeiraApresentacao; } item.PrimeiraApresentacao = itemAp; } else if ((item.UltimaApresentacao == null) || (itemAp.CalcHorario > item.UltimaApresentacao.CalcHorario)) { item.UltimaApresentacao = itemAp; } item.QtdeDisponivel += itemAp.QtdeDisponivel; } } } else { eventos = ado.ListarCompleto(pageNumber, pageSize, busca, localID, estado, cidade, tipoID, subtipoID, quantidadeDias, diasSemana, latitude, longitude, distancia, ordem); foreach (var item in eventos) { item.EventoMidias = ListarEventoMidiaInEventoAsDictionary(item.IR_EventoID); } } return(eventos); }
public IPagedList <Evento> Listar(int pageNumber, int pageSize, string busca = null, int localID = 0, string estado = null, string cidade = null, int tipoID = 0, int subtipoID = 0, enumTipoPeriodo?tipoPeriodo = null, enumTipoDias tipoDias = enumTipoDias.todosDias, double?latitude = null, double?longitude = null, double distancia = 0, enumEventoOrdem ordem = enumEventoOrdem.dataAsc) { var quantidadeDias = (tipoPeriodo == null) ? 0 : tipoPeriodo.Value.ValueAsInt(); List <int> diasSemana = null; switch (tipoDias) { case enumTipoDias.diasUteis: diasSemana = ConfiguracaoAppUtil.GetAsListInt(enumConfiguracaoBO.eventoDiasUteis); break; case enumTipoDias.finaisDeSemana: diasSemana = ConfiguracaoAppUtil.GetAsListInt(enumConfiguracaoBO.eventoFinaisDeSemana); break; } var eventos = ado.Listar(pageNumber, pageSize, busca, localID, estado, cidade, tipoID, subtipoID, quantidadeDias, diasSemana, latitude, longitude, distancia, ordem); //Se não encontrar nenhum evento realizar nova busca. Corrigindo o texto de busca if (eventos.None() && ConfigurationManager.AppSettings["HabilitarSpelling"] != null && Convert.ToBoolean(ConfigurationManager.AppSettings["HabilitarSpelling"])) { if (!string.IsNullOrWhiteSpace(busca)) { busca = busca.CorrigirTexto(); eventos = ado.Listar(pageNumber, pageSize, busca, localID, estado, cidade, tipoID, subtipoID, quantidadeDias, diasSemana, latitude, longitude, distancia, ordem); } } foreach (var item in eventos) { item.EventoMidias = ListarEventoMidiaInEventoAsDictionary(item.IR_EventoID); } return(eventos); }
public RetornoModel <PagedListModel <Evento> > GetCompleto(string busca = null, int localid = 0, string uf = null, string cidade = null, int tipoID = 0, int subtipoID = 0, double?latitude = null, double?longitude = null, double distancia = 0, int pg = 1, int qtdpg = 1, enumEventoOrdem ordem = enumEventoOrdem.dataAsc) { RetornoModel <PagedListModel <Evento> > retorno = new RetornoModel <PagedListModel <Evento> >(); var stopwatch = new Stopwatch(); stopwatch.Start(); try { using (var eventoBO = new EventoBO()) { if (!string.IsNullOrEmpty(busca)) { busca = busca.Replace("'", "''"); } var result = eventoBO.ListarCompleto(pg, qtdpg, busca, localid, uf, cidade, tipoID, subtipoID, null, enumTipoDias.todosDias, latitude, longitude, distancia, ordem); if (result.Count > 0) { retorno.Retorno = new PagedListModel <Evento>().CopyFrom(result); retorno.Retorno.Itens = result.ToList(); } retorno.Sucesso = true; } } catch (Exception ex) { stopwatch.Stop(); retorno.Mensagem = ex.Message; LogUtil.Error(string.Format("##GET.Eventos.eventos_completo.EXCEPTION## SESSION {0}, MSG {1}, TEMPO DECORRIDO {2}", this.SessionModel.SessionID, ex.Message, stopwatch.Elapsed), ex); retorno.Sucesso = false; LogUtil.Error(ex); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno))); } stopwatch.Stop(); if (retorno.Retorno == null || retorno.Retorno.Itens == null || retorno.Retorno.Itens.Count == 0) { retorno.Sucesso = false; retorno.Mensagem = "Nenhum evento encontrado"; LogUtil.Info(string.Format("##GET.Eventos.eventos_completo## SESSION {0}, TEMPO DECORRIDO {1}, MSG {2}", this.SessionModel.SessionID, stopwatch.Elapsed, retorno.Mensagem)); NewRelicIgnoreTransaction(); throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, ParseRetorno(retorno))); } else { retorno.Mensagem = "OK"; } LogUtil.Info(string.Format("##GET.Eventos.eventos_completo## SESSION {0}, TEMPO DECORRIDO {1}, MSG {2}", this.SessionModel.SessionID, stopwatch.Elapsed, retorno.Mensagem)); return(ParseRetorno(retorno)); }