Exemple #1
0
        private void TransferPhysicalPersonMoneyButton_OnClick(object sender, RoutedEventArgs e)
        {
            MoneyTransferWindow moneyTransferWindow = new MoneyTransferWindow();

            using (var physicalPersonClientRepo = new PhysicalPersonClientRepository())
                using (var legalPersonClientRepo = new LegalPersonClientRepository())
                {
                    PhysicalPersonClient client = (PhysicalPersonClient)PhysicalPersonsDataGrid.SelectedItem;
                    moneyTransferWindow.SenderAccountIdComboBox.ItemsSource       = physicalPersonClientRepo.GetAllClientAccounts(client.Id);
                    moneyTransferWindow.SenderAccountIdComboBox.DisplayMemberPath = "Id";

                    var allClients = new List <IClient>();
                    allClients.AddRange(physicalPersonClientRepo.GetClients());
                    allClients.AddRange(legalPersonClientRepo.GetClients());

                    moneyTransferWindow.RecipientClientNamesComboBox.ItemsSource       = allClients;
                    moneyTransferWindow.RecipientClientNamesComboBox.DisplayMemberPath = "DisplayName";

                    if (moneyTransferWindow.ShowDialog() == true)
                    {
                        IAccount accountFrom = (IAccount)moneyTransferWindow.SenderAccountIdComboBox.SelectedValue;
                        IAccount accountTo   = (IAccount)moneyTransferWindow.RecipientAccountsIdComboBox.SelectedValue;
                        try
                        {
                            AccountManager accountManager = new AccountManager();
                            accountManager.TransferMoney(accountFrom, accountTo, moneyTransferWindow.Amount);
                            physicalPersonClientRepo.Save();
                            legalPersonClientRepo.Save();
                        }
                        catch (HimselfTransferException exception)
                        {
                            MessageBox.Show($"Произошла ошибка: {exception.Message}\n" +
                                            $"Перевод с клиента {accountFrom.ClientId} со счета {accountFrom.Id} клиенту {accountTo.ClientId} на счет {accountTo.Id}");
                        }
                        catch (InsufficientAmountsException exception)
                        {
                            MessageBox.Show($"Произошла ошибка: {exception.Message}\nСуммма денег на счету: {exception.Amount}");
                        }
                        catch (CurrencyMismatchException exception)
                        {
                            MessageBox.Show($"Произошла ошибка: {exception.Message}\n" +
                                            $"Валюта счета отправителя: {exception.Sender}, валюта счета получателя: {exception.Recipient}");
                        }
                        catch (Exception exception)
                        {
                            MessageBox.Show($"Произошла ошибка: {exception.Message} Выполняем завершение программы.");
                            throw;
                        }
                    }
                }
        }
Exemple #2
0
        public ClientsWindow()
        {
            InitializeComponent();
            //TestData testData = new TestData();
            //testData.FillAllTables();
            using (var repo = new PhysicalPersonClientRepository())
            {
                PhysicalPersonClients = new ObservableCollection <PhysicalPersonClient>(repo.GetClients());
                PhysicalPersonsDataGrid.DataContext = this;
            }

            using (var repo = new LegalPersonClientRepository())
            {
                LegalPersonClients = new ObservableCollection <LegalPersonClient>(repo.GetClients());
                LegalPersonsDataGrid.DataContext = this;
            }
            rate = new Rate();
        }