예제 #1
0
        public Gerenciamento.Precos getPreco(int precoID, int apresentacaoID)
        {
            Gerenciamento.Precos preco = new Gerenciamento.Precos();

            var item = (from a in Apresentacoes
                        join p in Precos on a.ApresentacaoID equals p.ApresentacaoID
                        where a.ApresentacaoID == apresentacaoID && p.PrecoID == precoID
                        select new
            {
                PrecoID = p.PrecoID,
                Valor = p.Valor,
                SetorID = p.SetorID,
                PrecoTipoID = p.PrecoTipoID,
                Nome = p.Nome,
                Label = p.Label,
                Horario = p.Horario,
                ApresentacaoID = p.ApresentacaoID,
                GerenciamentoIngressoID = p.GerenciamentoIngressoID,
                QuantidadeDisponivel = p.QuantidadeDisponivel,
                QuantidadeMaxima = p.QuantidadeMaxima,
                EventoID = p.EventoID,
                DataApresentacao = p.DataApresentacao,
                Evento = p.Evento
            }).FirstOrDefault();

            if (item != null)
            {
                preco = new Gerenciamento.Precos()
                {
                    PrecoID                 = item.PrecoID,
                    Valor                   = item.Valor,
                    SetorID                 = item.SetorID,
                    PrecoTipoID             = item.PrecoTipoID,
                    Nome                    = item.Nome,
                    Label                   = item.Label,
                    Horario                 = item.Horario,
                    ApresentacaoID          = item.ApresentacaoID,
                    GerenciamentoIngressoID = item.GerenciamentoIngressoID,
                    QuantidadeDisponivel    = item.QuantidadeDisponivel,
                    QuantidadeMaxima        = item.QuantidadeMaxima,
                    EventoID                = item.EventoID,
                    DataApresentacao        = item.DataApresentacao,
                    Evento                  = item.Evento
                }
            }
            ;


            return(preco);
        }
예제 #2
0
 /// <summary>
 /// Metodo que libera a reserva apartir do PrecoID
 /// TODO:DEVE LOCKAR A Aplicação
 /// </summary>
 /// <param name="PrecoID"></param>
 public void LiberarReserva(int PrecoID)
 {
     try
     {
         lock (this.Precos)
         {
             Gerenciamento.Precos preco = this.Precos.Where(c => c.PrecoID == PrecoID && c.QuantidadeDisponivel + 1 <= c.QuantidadeMaxima).FirstOrDefault();
             if (preco != null)
             {
                 preco.QuantidadeDisponivel++;
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #3
0
        /// <summary>
        /// Metodo de decrementar,
        /// deve dar Lock na aplicação para através de concorrencia não seja possível reservar o PrecoID ao mesmo tempo com qtd <= 0
        /// TODO: Dar LOCK
        /// </summary>
        /// <param name="precoID"></param>
        /// <returns></returns>
        public bool DecrementarPrecoID(int precoID, int gerenciamentoIngressoID)
        {
            try
            {
                lock (this.Precos)
                {
                    Gerenciamento.Precos preco = this.Precos.Where(c => c.PrecoID == precoID && c.GerenciamentoIngressoID == gerenciamentoIngressoID).FirstOrDefault();

                    if (preco == null || preco.QuantidadeDisponivel <= 0)
                    {
                        return(false);
                    }

                    preco.QuantidadeDisponivel--;
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }