Beispiel #1
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);
        }
Beispiel #2
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);
        }