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