示例#1
0
        private void EditAccount(AccountNode node)
        {
            using (var dlg = new EditAccountDialog(this))
            {
                dlg.Balance     = node.Balance;
                dlg.Description = node.Description;
                dlg.AccountName = node.Name;
                dlg.Type        = node.Type;
                dlg.ParentId    = node.ParentId;
                dlg.Text        = "Edit Account";

                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    treeAccounts.BeginUpdate();
                    node.Balance     = dlg.Balance;
                    node.Description = dlg.Description;
                    node.Name        = dlg.AccountName;
                    node.Type        = dlg.Type;
                    node.ParentId    = dlg.ParentId;
                    treeAccounts.EndUpdate();

                    var index = nodeBindingSource.IndexOf(node);
                    nodeBindingSource.ResetItem(index);
                }
            }
        }
示例#2
0
        private AccountNode AddAccount()
        {
            using (var dlg = new EditAccountDialog(this))
            {
                if (TryGetTarget(out AccountNode parent))
                {
                    dlg.ParentId = parent.Id;
                }

                dlg.Text = "Add Account";
                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    var node = new AccountNode
                    {
                        Balance     = dlg.Balance,
                        Description = dlg.Description,
                        Name        = dlg.AccountName,
                        Type        = dlg.Type,
                        ParentId    = dlg.ParentId,
                    };

                    nodeBindingSource.Add(node);
                    return(node);
                }
            }

            return(null);
        }
示例#3
0
        private bool TryGetTarget(out AccountNode target)
        {
            target = null;

            var row = treeAccounts.GetDataRecordByNode(_targetNode);

            if (row is AccountNode node && node.Type == AccountType.Group)
            {
                target = node;
            }

            return(target != null);
        }
示例#4
0
        private void btnNewGroup_ItemClick(object sender, ItemClickEventArgs e)
        {
            var group = new AccountNode
            {
                Type = AccountType.Group,
                Name = "<New Group>"
            };

            if (TryGetTarget(out AccountNode parent))
            {
                parent.Add(group);
            }

            nodeBindingSource.Add(group);
        }
示例#5
0
 public SimulationAccount(AccountNode model)
 {
     _transactions = new List <SimulationAccountTransaction>();
     Model         = model;
     Balance       = model.Balance;
 }