Пример #1
0
        private void EditProductButton_Click(object sender, EventArgs e)
        {
            //get the key of the current product in the data grid view
            int    rowNum = productDataGridView.CurrentCell.RowIndex;
            string prodID = productDataGridView["dataGridViewTextBoxColumn1", rowNum].Value.ToString();
            //create a current product object
            Product existingProduct;

            using (ProductsDataContext dataContext = new ProductsDataContext())
            {
                existingProduct = (from p in dataContext.Products
                                   where p.ProductId.ToString() == prodID
                                   select p).Single();
            }
            //instantiate the addeditproductsForm
            AddEditProductsForm addEditForm = new AddEditProductsForm();

            addEditForm.EditMode        = true;                            //editing products
            addEditForm.existingProduct = existingProduct;
            DialogResult result = addEditForm.ShowDialog();                // display second form modal

            if (result == DialogResult.OK || result == DialogResult.Retry) // successful update or concurrency exception
            {
                ReloadGridView();
            }
        }
Пример #2
0
        private void ApplyButton_Click(object sender, EventArgs e)
        {
            if (!EditMode) //if adding a product
            {
                //validate user input before sending to database
                if (ValidateProduct.IsNotEmpty(prodNameTextBox, "Product Name") &&
                    ValidateProduct.IsValidString(prodNameTextBox, "Product Name") &&
                    ValidateProduct.IsValidInteger(productIdTextBox, "Product ID") &&
                    ValidateProduct.IsNotEmpty(productIdTextBox, "Product ID") &&
                    IsExistingID(productIdTextBox))
                {
                    Product newProduct = new Product //create a new product from user input
                    {
                        ProductId = int.Parse(productIdTextBox.Text),
                        ProdName  = prodNameTextBox.Text
                    };
                    using (ProductsDataContext dataContext = new ProductsDataContext())
                    {
                        //insert through data context from the main form
                        dataContext.Products.InsertOnSubmit(newProduct);
                        dataContext.SubmitChanges(); //submit to the database
                    }
                    DialogResult = DialogResult.OK;
                }
            }
            else //if editing products
            {
                //validate data input
                if (ValidateProduct.IsNotEmpty(prodNameTextBox, "Product Name") &&
                    ValidateProduct.IsValidString(prodNameTextBox, "Product Name"))
                {
                    try
                    {
                        using (ProductsDataContext dataContext = new ProductsDataContext())
                        {
                            //get the product ID from current text box
                            Product product = dataContext.Products.Single(p => p.ProductId.ToString() == productIdTextBox.Text);

                            if (product != null)
                            {
                                product.ProdName = prodNameTextBox.Text;
                                //submit changes
                                dataContext.SubmitChanges();
                                DialogResult = DialogResult.OK;
                            }
                        }
                    }
                    catch (ChangeConflictException)
                    {
                        MessageBox.Show("Another user changed or deleted the current record", "Concurrency Exception");
                        DialogResult = DialogResult.Retry;
                    }
                    catch (Exception excp)
                    {
                        MessageBox.Show(excp.Message, excp.GetType().ToString());
                    }
                }
            }
        }
Пример #3
0
        private void ProductsMainForm_Load(object sender, EventArgs e)
        {
            using (ProductsDataContext dataContext = new ProductsDataContext())
            {
                //this loads the entire table
                productDataGridView.DataSource = dataContext.Products;
                //productDataGridView.DataSource = from prod in dataContext.Products
                //                                 select prod;
            }
            productDataGridView.BorderStyle = BorderStyle.None;
            productDataGridView.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(238, 239, 249);
            productDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
            productDataGridView.DefaultCellStyle.SelectionBackColor = Color.DarkTurquoise;
            productDataGridView.DefaultCellStyle.SelectionForeColor = Color.WhiteSmoke;
            productDataGridView.BackgroundColor = Color.White;

            productDataGridView.EnableHeadersVisualStyles = false;
            productDataGridView.ColumnHeadersBorderStyle  = DataGridViewHeaderBorderStyle.None;
            productDataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(20, 25, 72);
            productDataGridView.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
        }
Пример #4
0
        //the method ensures unique product ID
        private bool IsExistingID(TextBox IDtextBox)
        {
            Product product = null;

            using (ProductsDataContext dataContext = new ProductsDataContext())
            {
                product = (from p in dataContext.Products
                           where p.ProductId.ToString() == IDtextBox.Text
                           select p).SingleOrDefault();
                //dataContext.Products.Single(p => p.ProductId.ToString() == IDtextBox.Text);
                if (product != null) // there is another product with same code
                {
                    MessageBox.Show("Product code must be unique", "Entry Error");
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
Пример #5
0
        private void ReloadGridView()
        {
            ProductsDataContext dataContext = new ProductsDataContext();

            productDataGridView.DataSource = dataContext.Products;
        }