Пример #1
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.carros)
         {
             QRX.Carro carro = this.carros.Where(c => c.ID == PrecoID && c.QuantidadeDisponivel + 1 <= c.QuantidadeMaxima).FirstOrDefault();
             if (carro != null)
             {
                 carro.QuantidadeDisponivel++;
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #2
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)
        {
            try
            {
                lock (this.carros)
                {
                    QRX.Carro carro = this.carros.Where(c => c.ID == precoID).FirstOrDefault();

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

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