Example #1
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            // TODO: consider adding some validation or plausibility checks

            if (existingItem != null)
            {
                if (existingItem.ID.StartsWith(Consts.Keeper.UserMetadataPrefix))
                {
                    existingItem.Title   = tbTitle.Text.Trim();
                    existingItem.Message = tbMessage.Text.Trim();
                    existingItem.TransactionDefaultTitle = tbTransactionDefaultTitle.Text.Trim();
                    existingItem.TransactionTypesRowByFK_TransactionTypes_Source_TransactionTemplates =
                        cbSourceTransactionType.SelectedItem as MoneyDataSet.TransactionTypesRow;
                    existingItem.AccountTypesRowByFK_AccountTypes_Source_TransactionTemplates =
                        cbSourceAccountType.SelectedItem as MoneyDataSet.AccountTypesRow;
                    existingItem.ExactSourceAccountType = cbExactSourceAccountType.Checked;
                    if (cbIsIncome.CheckState == CheckState.Indeterminate)
                    {
                        existingItem.SetIsIncomeNull();
                    }
                    else
                    {
                        existingItem.IsIncome = cbIsIncome.Checked;
                    }
                    existingItem.HasDestinationAccount = cbHasDestinationAccount.Checked;
                    if (cbHasDestinationAccount.Checked)
                    {
                        existingItem.TransactionTypesRowByFK_TransactionTypes_Destination_TransactionTemplates =
                            cbDestinationTransactionType.SelectedItem as MoneyDataSet.TransactionTypesRow;
                        existingItem.AccountTypesRowByFK_AccountTypes_Destination_TransactionTemplates =
                            cbDestinationAccountType.SelectedItem as MoneyDataSet.AccountTypesRow;
                        existingItem.ExactDestinationAccountType = cbExactDestinationAccountType.Checked;
                        existingItem.IsAmountIdentical           = cbIsAmountIdentical.Checked;
                    }
                }
                existingItem.IsVisible = cbIsVisible.Checked;
            }
            else
            {
                String ID = tbID.Text.Trim().ToUpper();
                if (keeper.DataSet.TransactionTemplates.FindByID(ID) != null)
                {
                    MessageBox.Show(String.Format(Resources.Labels.RecordExistFormat, ID),
                                    Resources.Labels.ErrorSavingTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else if (!ID.StartsWith(Consts.Keeper.UserMetadataPrefix))
                {
                    MessageBox.Show(String.Format(Resources.Labels.UserIDShouldHavePrefixFormat, Consts.Keeper.UserMetadataPrefix),
                                    Resources.Labels.ErrorSavingTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                MoneyDataSet.TransactionTemplatesRow template = keeper.DataSet.TransactionTemplates.NewTransactionTemplatesRow();
                template.ID      = ID;
                template.Title   = tbTitle.Text.Trim();
                template.Message = tbMessage.Text.Trim();
                template.TransactionDefaultTitle = tbTransactionDefaultTitle.Text.Trim();
                template.TransactionTypesRowByFK_TransactionTypes_Source_TransactionTemplates =
                    cbSourceTransactionType.SelectedItem as MoneyDataSet.TransactionTypesRow;
                template.AccountTypesRowByFK_AccountTypes_Source_TransactionTemplates =
                    cbSourceAccountType.SelectedItem as MoneyDataSet.AccountTypesRow;
                template.ExactSourceAccountType = cbExactSourceAccountType.Checked;
                template.IsVisible = cbIsVisible.Checked;
                if (cbIsIncome.CheckState == CheckState.Indeterminate)
                {
                    template.SetIsIncomeNull();
                }
                else
                {
                    template.IsIncome = cbIsIncome.Checked;
                }
                template.HasDestinationAccount = cbHasDestinationAccount.Checked;
                if (cbHasDestinationAccount.Checked)
                {
                    template.TransactionTypesRowByFK_TransactionTypes_Destination_TransactionTemplates =
                        cbDestinationTransactionType.SelectedItem as MoneyDataSet.TransactionTypesRow;
                    template.AccountTypesRowByFK_AccountTypes_Destination_TransactionTemplates =
                        cbDestinationAccountType.SelectedItem as MoneyDataSet.AccountTypesRow;
                    template.ExactDestinationAccountType = cbExactDestinationAccountType.Checked;
                    template.IsAmountIdentical           = cbIsAmountIdentical.Checked;
                }

                keeper.DataSet.TransactionTemplates.AddTransactionTemplatesRow(template);
            }
            keeper.DataSet.AcceptChanges();
            this.DialogResult = DialogResult.OK;
            this.Close();
        }