コード例 #1
0
        private void btnEditInvoice_Click(object sender, EventArgs e)
        {
            // получение контекста
            var dbContext = AppVariables.getDbContext();
            // поиск сущности по идентификатору
            var invoice = dbContext.INVOICES.Find(this.CurrentInvoice.Id);

            if (invoice.PAID == 1)
            {
                MessageBox.Show("Change is impossible, invoice paid.", "Error");
                return;
            }

            using (InvoiceEditorForm editor = new InvoiceEditorForm())
            {
                editor.Text    = "Edit invoice";
                editor.Invoice = invoice;
                // Обработчик закрытия формы
                editor.FormClosing += delegate(object fSender, FormClosingEventArgs fe)
                {
                    if (editor.DialogResult == DialogResult.OK)
                    {
                        try
                        {
                            // пытаемся сохранить изменения
                            dbContext.SaveChanges();
                            // перезагружаем проекцию
                            CurrentInvoice.Load(invoice.INVOICE_ID);
                            masterBinding.ResetCurrentItem();
                        }
                        catch (Exception ex)
                        {
                            // отображаем ошибку
                            MessageBox.Show(ex.Message, "Error");
                            // не закрываем форму для возможности исправления ошибки
                            fe.Cancel = true;
                        }
                    }
                };
                // показываем модальную форму
                editor.ShowDialog(this);
            }
        }
コード例 #2
0
        private void btnAddInvoice_Click(object sender, EventArgs e)
        {
            var dbContext = AppVariables.getDbContext();
            var invoice   = dbContext.INVOICES.Create();

            using (InvoiceEditorForm editor = new InvoiceEditorForm())
            {
                editor.Text    = "Add invoice";
                editor.Invoice = invoice;
                // Обработчик закрытия формы
                editor.FormClosing += delegate(object fSender, FormClosingEventArgs fe)
                {
                    if (editor.DialogResult == DialogResult.OK)
                    {
                        try
                        {
                            // получаем значение генератора
                            invoice.INVOICE_ID = dbContext.NextValueFor("GEN_INVOICE_ID");
                            // добавляем запись
                            dbContext.INVOICES.Add(invoice);
                            // пытаемся сохранить изменения
                            dbContext.SaveChanges();
                            // добавляем проекцию в список для грида
                            ((InvoiceView)masterBinding.AddNew()).Load(invoice.INVOICE_ID);
                        }
                        catch (Exception ex)
                        {
                            // отображаем ошибку
                            MessageBox.Show(ex.Message, "Error");
                            // не закрываем форму для возможности исправления ошибки
                            fe.Cancel = true;
                        }
                    }
                };
                // показываем модальную форму
                editor.ShowDialog(this);
            }
        }