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); }
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); }