private void getProductMasterData()
 {
     using (CommonServiceBLL commonServiceBLL = new CommonServiceBLL())
     {
         CommonDataResponse commonDataResponse = commonServiceBLL.GetMasterData();
         this.SizeList     = commonDataResponse.Sizes;
         this.CategoryList = commonDataResponse.Categories;
         this.StatusList   = commonDataResponse.Status;
         this.PortionList  = commonDataResponse.Portions;
         this.getProducts();
     }
 }
        private void AddUpdateItem_Load(object sender, EventArgs e)
        {
            this.productTable = new DataTable();
            this.priceTable   = new DataTable();

            productTable.Columns.Add("Name");
            productTable.Columns.Add("Code");
            productTable.Columns.Add("Category");
            productTable.Columns.Add("Id");
            productTable.Columns.Add("CategoryEnum");

            priceTable.Columns.Add("Size");
            priceTable.Columns.Add("Price (Rs.)");
            priceTable.Columns.Add("Discount (%)");
            priceTable.Columns.Add("Discounted Price (Rs.)");
            priceTable.Columns.Add("SizeEnum");
            priceTable.Columns.Add("ProductId");
            priceTable.Columns.Add("Id");

            productGridView.DataSource        = productTable;
            gridViewSpecifications.DataSource = priceTable;

            productGridView.Columns["Id"].Visible               = false;
            productGridView.Columns["CategoryEnum"].Visible     = false;
            gridViewSpecifications.Columns["SizeEnum"].Visible  = false;
            gridViewSpecifications.Columns["ProductId"].Visible = false;
            gridViewSpecifications.Columns["Id"].Visible        = false;

            var viewButton = new DataGridViewButtonColumn();

            viewButton.Name       = "dataGridViewButton";
            viewButton.HeaderText = "View";
            viewButton.Text       = "View";
            viewButton.UseColumnTextForButtonValue = true;
            productGridView.Columns.Add(viewButton);

            var editButton = new DataGridViewButtonColumn();

            editButton.Name       = "dataGridViewEditButton";
            editButton.HeaderText = "Edit";
            editButton.Text       = "Edit";
            editButton.UseColumnTextForButtonValue = true;
            productGridView.Columns.Add(editButton);

            var deleteButton = new DataGridViewButtonColumn();

            deleteButton.Name       = "dataGridViewDeleteButton";
            deleteButton.HeaderText = "Delete";
            deleteButton.Text       = "Delete";
            deleteButton.UseColumnTextForButtonValue = true;
            productGridView.Columns.Add(deleteButton);

            var specEditButton = new DataGridViewButtonColumn();

            specEditButton.Name       = "specificationEditButton";
            specEditButton.HeaderText = "Edit";
            specEditButton.Text       = "Edit";
            specEditButton.UseColumnTextForButtonValue = true;
            gridViewSpecifications.Columns.Add(specEditButton);

            var specDeleteButton = new DataGridViewButtonColumn();

            specDeleteButton.Name       = "specificationDeleteButton";
            specDeleteButton.HeaderText = "Delete";
            specDeleteButton.Text       = "Delete";
            specDeleteButton.UseColumnTextForButtonValue = true;
            gridViewSpecifications.Columns.Add(specDeleteButton);

            productGridView.Columns[0].Width = 210;
            productGridView.Columns[1].Width = 155;
            productGridView.Columns[2].Width = 150;

            gridViewSpecifications.Columns[0].Width = 115;
            gridViewSpecifications.Columns[1].Width = 80;
            gridViewSpecifications.Columns[2].Width = 80;
            gridViewSpecifications.Columns[3].Width = 80;

            using (CommonServiceBLL commonServiceBLL = new CommonServiceBLL())
            {
                CommonDataResponse commonDataResponse = commonServiceBLL.GetMasterData();
                this.SizeList     = commonDataResponse.Sizes;
                this.CategoryList = commonDataResponse.Categories;
                this.StatusList   = commonDataResponse.Status;
                this.PortionList  = commonDataResponse.Portions;

                this.getProducts(); // get products from db

                // Set combobox data
                cmbSelectSize.DisplayMember     = cmbCategory.DisplayMember = cmbSelectCategory.DisplayMember = "Name";
                cmbSelectSize.ValueMember       = cmbCategory.ValueMember = cmbSelectCategory.ValueMember = "Data";
                cmbSelectProduct.DisplayMember  = "Name";
                cmbSelectProduct.ValueMember    = "Id";
                cmbCategory.DataSource          = this.CategoryList;
                cmbSelectCategory.DataSource    = this.CategoryList;
                cmbSelectSize.DataSource        = this.SelectedSizeList;
                cmbCategory.SelectedIndex       = 0;
                cmbSelectCategory.SelectedIndex = 0;
                cmbSelectProduct.SelectedIndex  = -1;
                cmbSelectSize.SelectedIndex     = -1;

                foreach (ProductVM product in products)
                {
                    DataRow itemDataRow = this.productTable.NewRow();
                    itemDataRow[0] = product.Name;
                    itemDataRow[1] = product.Code;
                    itemDataRow[2] = product.CategoryName;
                    itemDataRow[3] = product.Id;
                    itemDataRow[4] = product.mpt_CategoryEnum;
                    this.productTable.Rows.Add(itemDataRow);
                }
            }

            productGridView.RowHeadersVisible = false;
            this.ProductFormFieldValidation(); // validate product from
            this.PriceFormFieldValidation();   // validate price form
            this.txtDiscount.Text = "0.0";
        }