/// <summary> /// Обработка нажатия кнопки Пополнить счёт /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void XBtnTopUpAnAccount_Click(object sender, RoutedEventArgs e) { decimal sum; try { sum = Convert.ToDecimal(Interaction.InputBox("Введите сумму к зачислению на счёт.", "Пополнение счёта.")); (XListOrg.SelectedValue as Organization).logFile.Add ($"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()} Депозит пополнен на {sum} руб."); //(XListOrg.SelectedValue as Organization) += sum; - вот так не работает????? //DataBase.Org[0] += sum; - вот так работает // Вот метод расширения (XListOrg.SelectedValue as Organization).DepositUp(sum); // Вместо строчки ниже //(XListOrg.SelectedValue as Organization).Depositing((XListOrg.SelectedValue as Organization).Deposit, sum); BankLog?.Invoke((XListOrg.SelectedValue as Organization), $"Депозит пополнен на {sum} руб."); } catch (Exception ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } XListOrg.Items.Refresh(); XTbDeposit.Text = (XListOrg.SelectedValue as Organization).Deposit.ToString("# ### ###"); }
/// <summary> /// Обработка нажатия кнопки Снять со счёта /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void XBtnPersonWithdraw_Click(object sender, RoutedEventArgs e) { decimal sum; try { sum = Convert.ToDecimal(Interaction.InputBox("Введите сумму к снятию со счёта.", "Снятие со счёта.")); if (sum > (XListPerson.SelectedValue as NaturalPerson).Deposit) { throw new MoreThanSummaOfDepozitException("Сумма к снятию не может быть больше суммы депозита!!!"); } (XListPerson.SelectedValue as NaturalPerson).logFile.Add ($"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()} С депозита снято {sum} руб."); (XListPerson.SelectedValue as NaturalPerson).Withdrawal((XListPerson.SelectedValue as NaturalPerson).Deposit, sum); BankLog?.Invoke((XListPerson.SelectedValue as NaturalPerson), $"С депозита снято {sum} руб."); } catch (MoreThanSummaOfDepozitException ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } XListPerson.Items.Refresh(); XTbPersonDeposit.Text = (XListPerson.SelectedValue as NaturalPerson).Deposit.ToString("# ### ###"); }
// Кнопка начисления процентов private void ButtonDemo_Click(object sender, RoutedEventArgs e) { if (XTbInfoForPercents.Text != null) { XTbInfoForPercents.Text = default; } MessageBox.Show("Реализация начисления процентов - учебно - тренировочный режим, не учитывающий возможные снятия, пополнения и переводы по счёту.", "Инфомэйшн", MessageBoxButton.OK, MessageBoxImage.Question); try { if (DataBase.Org.Count == 0 || DataBase.Person.Count == 0) { throw new Exception("База не сгенерирована или не загружена."); } for (int i = 0; i < 12; i++) { foreach (var organizationOne in DataBase.Org) { organizationOne.PercentYear(organizationOne.InterestRate, organizationOne.Deposit, organizationOne.StartDepositForPercents, organizationOne.CapitalizationPercents); organizationOne.logFile.Add($"Some time Ежемесячное начисление процента на депозит. {organizationOne.Deposit.ToString("# ### ### .##")}"); if (i == 11) { organizationOne.StartDepositForPercents = organizationOne.Deposit; } } foreach (var personOne in DataBase.Person) { personOne.PercentYear(personOne.InterestRate, personOne.Deposit, personOne.StartDepositForPercents, personOne.CapitalizationPercents); personOne.logFile.Add($"Some time Ежемесячное начисление процента на депозит {personOne.Deposit.ToString("# ### ### .##")}"); if (i == 11) { personOne.StartDepositForPercents = personOne.Deposit; } } } XTbInfoForPercents.Text = "Операция выполнена успешно."; BankLog?.Invoke(DataBase.Org[0], "Операция начисления процентов клиентам прошла успешно."); } catch (Exception ex) { MessageBox.Show(ex.Message, "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } }
/// <summary> /// Обработка нажатия кнопки Пополнить счёт /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void XBtnPersonTopUpAnAccount_Click(object sender, RoutedEventArgs e) { decimal sum; try { sum = Convert.ToDecimal(Interaction.InputBox("Введите сумму к зачислению на счёт.", "Пополнение счёта.")); (XListPerson.SelectedValue as NaturalPerson).logFile.Add ($"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()} Депозит пополнен на {sum} руб."); (XListPerson.SelectedValue as NaturalPerson).Depositing((XListPerson.SelectedValue as NaturalPerson).Deposit, sum); BankLog?.Invoke((XListPerson.SelectedValue as NaturalPerson), $"Депозит пополнен на {sum} руб."); } catch (Exception ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } XListPerson.Items.Refresh(); XTbPersonDeposit.Text = (XListPerson.SelectedValue as NaturalPerson).Deposit.ToString("# ### ###"); }
// Нажатие кнопки Осуществить перевод private void XBtnTransfer_Click(object sender, RoutedEventArgs e) { decimal sumTransfer; try { // Ввод в текст бокс сумму перевода sumTransfer = Convert.ToDecimal(XTextBoxSumOfTransfer.Text); if (sumTransfer <= 0) { XTextBoxSumOfTransfer.Text = default; throw new SummaEqualsOrLessZeroException("Cумма к снятию не может быть равна или меньше 0."); } if (sumTransfer > (XComboStart.SelectedValue as Client).Deposit) { XTextBoxSumOfTransfer.Text = default; throw new MoreThanSummaOfDepozitException("Сумма к снятию не может быть больше суммы депозита!!!"); } DataBase.Clients[0].Deposit = DataBase.Clients[0].Deposit - sumTransfer; DataBase.Clients[0].logFile.Add ($"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()} С депозита осуществлён перевод на {sumTransfer} руб."); BankLog?.Invoke(DataBase.Clients[0], $"С депозита осуществлён перевод на {sumTransfer} руб."); DataBase.Clients[1].Deposit = DataBase.Clients[1].Deposit + sumTransfer; DataBase.Clients[1].logFile.Add ($"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()} На депозит начислен перевод на {sumTransfer} руб."); BankLog?.Invoke(DataBase.Clients[1], $"На депозит начислен перевод на {sumTransfer} руб."); XTextBoxSumOfTransfer.Text = default; sumTransfer = 0; XListOrg.Items.Refresh(); XListPerson.Items.Refresh(); // Вывод в текст блок в карточке клиента сумму депозита после операции if ((XListOrg.SelectedValue) != null && XListOrg.SelectedValue as Organization == XComboStart.SelectedValue as Organization) { XTbDeposit.Text = (XComboStart.SelectedValue as Organization).Deposit.ToString("# ### ###"); } if ((XListOrg.SelectedValue) != null && XListOrg.SelectedValue as Organization == XComboEnd.SelectedValue as Organization) { XTbDeposit.Text = (XComboEnd.SelectedValue as Organization).Deposit.ToString("# ### ###"); } if ((XListPerson.SelectedValue) != null && XListPerson.SelectedValue as NaturalPerson == XComboStart.SelectedValue as NaturalPerson) { XTbPersonDeposit.Text = (XComboStart.SelectedValue as NaturalPerson).Deposit.ToString("# ### ###"); } if ((XListPerson.SelectedValue) != null && XListPerson.SelectedValue as NaturalPerson == XComboEnd.SelectedValue as NaturalPerson) { XTbPersonDeposit.Text = (XComboEnd.SelectedValue as NaturalPerson).Deposit.ToString("# ### ###"); } XTextResultTrunsfer.Text = "Перевод осуществлён успешно."; } catch (SummaEqualsOrLessZeroException ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } catch (MoreThanSummaOfDepozitException ex) { MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } catch (Exception ex) { XTextBoxSumOfTransfer.Text = default; MessageBox.Show($"{ex.Message}\nЛибо вы вводите правильные данные, либо ищете другую работу! Ю Ноу?", "WTF", MessageBoxButton.OK, MessageBoxImage.Error); } }