/// <summary> /// Начисление простых процентов и ивип бонуса /// </summary> public override void AddDividend() { base.AddDividend(); Balance += DepositBonus; BalanceHandler?.Invoke(DepositBonus, 0); BalanceMetodChange?.Invoke($"{DateTime.Now} Баланс {this.ID} увеличен на {DepositBonus}"); }
/// <summary> /// Вычитает проценты по кредитам за счет депозита VIP /// </summary> public override void TakeTaxesByBalance() { foreach (var e in credits) { double diff = (e as Credit).AddInterest(); Balance -= diff; BalanceHandler?.Invoke(0, diff); BalanceMetodChange?.Invoke($"{DateTime.Now} Баланс {ID} уменьшен на {diff}"); } }
public void ShowInfo() { var eventName = "show"; BalanceHandler?.Invoke(_balance, eventName); // Вызов конкретного метода из всего списка подписок //var listOfMethods = BalanceHandler?.GetInvocationList(); //var firstDelegate = listOfMethods[0]; //var methodName = firstDelegate.Method.Name; //List<object> args = new List<object> //{ // _balance, // eventName //}; //var progClass = new Program(); //var result = progClass.GetType().GetMethod(methodName).Invoke(this, args.ToArray()); }
/// <summary> /// Начисление простых и сложных процентов на вклад /// </summary> public override void AddDividend() { if (DepType == DepositType.Simple) { //на депозит double diff = Deposit * DepositRate / 100; Balance += diff; BalanceHandler?.Invoke(diff, 0); BalanceMetodChange?.Invoke($"{DateTime.Now} Баланс {ID} увеличен на {diff}"); } else { //на баланс double diff = Balance * DepositRate / 100; Balance += diff; BalanceHandler?.Invoke(diff, 0); BalanceMetodChange?.Invoke($"{DateTime.Now} Баланс {ID} увеличен на {diff}"); } }
public void PutMoney(decimal money) { _balance += money; BalanceHandler?.Invoke(_balance, "put"); }
public void GetMoney(decimal money) { _balance -= money; BalanceHandler?.Invoke(_balance, "get"); }