Ejemplo n.º 1
0
        public List <tIngresso> RelacionarBloqueioParceiroMidia(List <int> ingressosIds, int parceiroMidiaId, int usuarioID)
        {
            List <tIngresso> retorno = new List <tIngresso>();

            bool precoIngressoParceiroMidiaNaoVerificado = true;

            foreach (int item in ingressosIds)
            {
                tIngresso ingresso = Consultar(item);
                if (ingresso.StatusAsEnum == enumIngressoStatus.bloqueado)
                {
                    //OBS: Esse bloco é executado apenas se o preço do ingresso ainda não tiver sido verificado, pois todos os ingressos possuem o mesmo setor e apresentação
                    if (precoIngressoParceiroMidiaNaoVerificado)
                    {
                        PrecoBO         precoBO    = new PrecoBO(ado);
                        ParceiroMidiaBO parceiroBO = new ParceiroMidiaBO(ado);
                        ParceiroMidia   parceiro   = parceiroBO.Consultar(parceiroMidiaId);
                        precoBO.CadastrarParaIngressoParceiroMidia(ingresso, usuarioID, parceiro);
                        precoIngressoParceiroMidiaNaoVerificado = false;
                    }
                    ingresso.ParceiroMidiaID = parceiroMidiaId;
                    Salvar(ingresso, false);
                    retorno.Add(ingresso);
                }
            }
            Salvar();

            return(retorno);
        }
Ejemplo n.º 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);
        }