Ejemplo n.º 1
0
        private void BEdit_Click(object sender, EventArgs e)
        {
            try
            {
                using (var context = new MyDbContext())
                {
                    int indexRow = dataGridView.CurrentCell.RowIndex;

                    int id = Convert.ToInt32(dataGridView.Rows[indexRow].Cells[0].Value);

                    if (Material == true)
                    {
                        Material material = db.Materials.Find(id);

                        editMaterial editmaterial = new editMaterial();

                        editmaterial.TBPrice.Text = material.GramPrice.ToString();

                        DialogResult result = editmaterial.ShowDialog(this); // в свойствах DialogRisult указать ОК

                        if (result == DialogResult.Cancel)
                        {
                            return;
                        }

                        material.GramPrice = Convert.ToInt32(editmaterial.TBPrice.Text);

                        db.SaveChanges();
                        UpdateDataGridViewMaterial();     // обновление GridV
                        MessageBox.Show("МАТЕРИАЛ ИЗМЕНЕН");
                    }

                    else if (Product == true)
                    {
                        Product product = db.Products.Find(id);

                        editProduct editProduct = new editProduct();

                        editProduct.TBPrice.Text  = product.Price.ToString(); // чтобы поля были видны в свойствах нужно поменять private на internal
                        editProduct.TBWeight.Text = product.Weight.ToString();
                        editProduct.TitleIds      = product.TitleId;
                        editProduct.MaterialIds   = product.MaterialId;

                        DialogResult result = editProduct.ShowDialog(this); // в свойствах DialogRisult указать ОК

                        if (result == DialogResult.Cancel)
                        {
                            return;
                        }

                        var query = context.Products.Where(x => x.MaterialId == editProduct.MaterialIds && x.TitleId == editProduct.TitleIds);
                        if (query.ToList().Count > 0)
                        {
                            MessageBox.Show("ТАКОЕ ИЗДЕЛИЕ УЖЕ СУЩЕСТВУЕТ");
                        }
                        else
                        {
                            product.Price      = Convert.ToInt32(editProduct.TBPrice.Text);
                            product.Weight     = Convert.ToInt32(editProduct.TBWeight.Text);
                            product.TitleId    = editProduct.TitleIds;
                            product.MaterialId = editProduct.MaterialIds;

                            db.SaveChanges();
                            UpdateDataGridViewProduct(); // обновление GridV
                            MessageBox.Show("МАТЕРИАЛ ИЗМЕНЕН");
                        }
                    }
                    else if (Title == true)
                    {
                        Title title = db.Titles.Find(id);

                        editTitle edittitle = new editTitle();

                        edittitle.TBName.Text = title.Name; // чтобы поля были видны в свойствах нужно поменять private на internal
                        edittitle.TBType.Text = title.Type;


                        DialogResult result = edittitle.ShowDialog(this); // в свойствах DialogRisult указать ОК

                        if (result == DialogResult.Cancel)
                        {
                            return;
                        }

                        var query = context.Titles.Where(x => x.Name == edittitle.TBName.Text && x.Type == edittitle.TBType.Text);

                        if (query.ToList().Count > 0)
                        {
                            MessageBox.Show("ТАКОЕ ИЗДЕЛИЕ УЖЕ СУЩЕСТВУЕТ");
                        }
                        else
                        {
                            title.Name = edittitle.TBName.Text;
                            title.Type = edittitle.TBType.Text;

                            db.SaveChanges();
                            UpdateDataGridViewTitle(); // обновление GridV
                            MessageBox.Show("ИЗДЕЛИЕ ИЗМЕНЕНО");
                        }
                    }
                    else if (Sale == true)
                    {
                        Sale sale = db.Sales.Find(id);

                        editSale editsale = new editSale();

                        editsale.TBSName.Text = sale.SName.ToString(); // что бы поля были видны в свойствах нужно было поменять private на internal
                        editsale.TBName.Text  = sale.Name.ToString();
                        editsale.TBFName.Text = sale.FName.ToString();
                        editsale.TitleIds     = sale.TitleId;

                        DialogResult result = editsale.ShowDialog(this); // в свойствах DialogRisult надо указать ОК

                        if (result == DialogResult.Cancel)
                        {
                            return;
                        }

                        sale.SName   = editsale.TBSName.Text;
                        sale.Name    = editsale.TBName.Text;
                        sale.FName   = editsale.TBFName.Text;
                        sale.TitleId = editsale.TitleIds;


                        db.SaveChanges();
                        UpdateDataGridViewSale(); // обновление GridV
                        MessageBox.Show("ЗАКАЗ ИЗМЕНЕН");
                    }
                }
            }
            catch (System.NullReferenceException error)
            {
                MessageBox.Show("ВЫБЕРИТЕ ТАБЛИЦУ", "ОШИБКА");
            }
        }