Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }