コード例 #1
0
        private void dataGridViewDocuments_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if(e.RowIndex >= 0 && e.ColumnIndex>=0)
            {
                //Редактирование документа
                DocumentForm documentForm = new DocumentForm();
                int id = (int) (dataGridViewDocuments.Rows[e.RowIndex].Cells["Id"].Value);
                documentForm.value = db.Documents.FirstOrDefault(s => s.Id == id);
                documentForm.Show();

                documentForm.Closed += delegate
                {
                    if (documentForm.DialogResult == DialogResult.OK)
                    {
                        //Удалены лишь связи. Удаление самих объектов:
                        foreach (var detail in db.DocumentDetails.Where(s=>s.DocumentId==documentForm.value.Id))
                        {
                            if(!documentForm.value.DocumentDetails.Contains(detail))
                                db.DocumentDetails.DeleteObject(detail);
                        }

                        //Пересчет суммы документа
                        documentForm.value.Summa = documentForm.value.DocumentDetails.Sum(s => s.Product.Price*s.Qty);

                        db.SaveChanges();
                    }
                };
            }
        }
コード例 #2
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            if(tabControl.SelectedTab == tabPageDocuments)
            {
                //Создание нового документа
                Document doc = new Document {Id=-1, Name = "Новый документ", Date = DateTime.Now, AgentFromId = 1, AgentToId = 2};
                DocumentForm documentForm = new DocumentForm {value = doc};

                documentForm.Closed += delegate
                {
                    if (documentForm.DialogResult == DialogResult.OK)
                    {
                        //Пересчет суммы документа
                        //foreach (var detail in documentForm.value.DocumentDetails)
                        //{
                        //    detail
                        //}

                        documentForm.value.Summa = documentForm.value.DocumentDetails.Sum(s => db.Products.FirstOrDefault(p=>p.Id==s.ProductId).Price * s.Qty);

                        db.Documents.AddObject(documentForm.value);
                        db.SaveChanges();
                        //TODO: Обновить грид
                    }
                };

                documentForm.Show();
            }
        }