Esempio n. 1
0
        public void Adicionar(int eventoID, string evento, int apresentacaoID, string apresentacao, int quantidadeNormais, int quantidadePromocionais)
        {
            Grupo = Grupos.First;

            int quantidadeTotal    = 0;
            int quantidadeRestante = quantidadeTotal = quantidadeNormais + quantidadePromocionais;

            while (quantidadeRestante > 0)
            {
                if (Grupos.Count == 0)
                {
                    Grupos.AddFirst(new EstruturaSerieGrupo());
                    Grupo = Grupos.First;
                }
                else if (Grupo.Next == null && quantidadeRestante != quantidadeTotal)
                {
                    Grupos.AddAfter(Grupo, new EstruturaSerieGrupo());
                    Grupo = Grupo.Next;
                }
                else if (quantidadeRestante != quantidadeTotal)
                {
                    Grupo = Grupo.Next;
                }


                int q = quantidadeRestante - QuantidadeMaximaIngressosPorApresentacao;

                if (q <= 0)
                {
                    Grupo.Value.Adicionar(eventoID, evento, apresentacaoID, apresentacao, quantidadeRestante, q);
                }
                else
                {
                    Grupo.Value.Adicionar(eventoID, evento, apresentacaoID, apresentacao, QuantidadeMaximaIngressosPorApresentacao, 0);
                }

                quantidadeRestante = q;
            }
        }