Epicor_Integration.Bill_Master.SaveChanges C# (CSharp) Method

SaveChanges() private method

private SaveChanges ( ) : void
return void
        private void SaveChanges()
        {
            BillDataGrid.SelectionChanged -= BillDataGrid_SelectionChanged;

            groupBox1.Enabled = false;

            try
            {
                string opMessage;

                string opMsgType;

                List<bool> Modded = new List<bool>();

                List<bool> Added = new List<bool>();

                foreach (DataRow DR in EngWBDS.Tables["ECOMtl"].Rows)
                {
                    if (DR.RowState == DataRowState.Modified || DR.RowState == DataRowState.Added)
                    {
                        #region Validate all data
                        if (DR.RowState == DataRowState.Modified)
                        {
                            Modded.Add(true);
                            Added.Add(false);
                        }
                        else
                        {
                            Added.Add(true);
                            Modded.Add(false);
                        }

                        string partnumber = DR["MtlPartNum"].ToString();

                        string ops = DR["RelatedOperation"].ToString();

                        string mtlseq = DR["MtlSeq"].ToString();

                        EngWB.CheckECOMtlMtlPartNum(partnumber, out opMessage, out opMsgType, EngWBDS);

                        EngWB.CheckECOMtlMtlSeqRelatedOperation(int.Parse(mtlseq), int.Parse(ops), "", out opMessage, out opMsgType, EngWBDS);

                        EngWB.ChangeECOMtlQtyPer(EngWBDS);

                        EngWB.ChangeECOMtlRelatedOperation(int.Parse(ops), EngWBDS);

                        //Set changes to accepted to run ECOMtlRelated or it will change all modified rows to equal the last modified rows related operations
                        DR.AcceptChanges();

                        //EngWB.ChangeECOMtlMtlPartNum(EngWBDS);

                        #endregion
                    }
                    else
                    {
                        Modded.Add(false);

                        Added.Add(false);
                    }
                }

                for (int i = 0; i < EngWBDS.Tables["ECOMtl"].Rows.Count; i++)
                {
                    if (EngWBDS.Tables["ECOMtl"].Rows[i].RowState == DataRowState.Unchanged)
                    {
                        if (Modded[i])
                        {
                            EngWBDS.Tables["ECOMtl"].Rows[i].SetModified();
                        }
                        if (Added[i])
                            EngWBDS.Tables["ECOMtl"].Rows[i].SetAdded();
                    }
                }
                try
                {
                    EngWB.Update(EngWBDS);
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }

                BillDataGrid.DataSource = EngWBDS.Tables["ECOMtl"];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            groupBox1.Enabled = true;

            BillDataGrid.SelectionChanged += BillDataGrid_SelectionChanged;
        }