private void BindGrid(DateTime from, DateTime to)
 {
     try
     {
         Controllers.frm36Controller oController = new Controllers.frm36Controller();
         DataTable dtCheckResult = oController.GetUnmatchInvoice(from, to);
         if (dtCheckResult.Rows.Count > 0)
         {
             dgvList.DataSource = dtCheckResult;
             ResetHeader();
         }
         else
         {
             //clear data except headers
             var empty = dgvList.DataSource as DataTable;
             try
             {
                 empty.Rows.Clear();
             }
             catch (Exception)//handle null result on first search
             {
             }
             dgvList.DataSource = empty;
         }
     }
     catch (System.TimeoutException)
     {
         MetroMessageBox.Show(this, "\n" + Messages.General.ServerTimeOut, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (System.Net.WebException)
     {
         MetroMessageBox.Show(this, "\n" + Messages.General.NoConnection, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (Exception ex)
     {
         Utility.WriteErrorLog(ex.Message, ex, false);
         MetroMessageBox.Show(this, "\n" + Messages.General.ThereWasAnError, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void BtnRefund_Click(object sender, EventArgs e)
        {
            #region CheckSelectedRow
            int status     = 0;
            int index      = 0;
            int foundindex = 0;
            foreach (DataGridViewRow row in dgvList.Rows)
            {
                if (row.Cells["colCheck"].Value == null ? false : bool.Parse(row.Cells["colCheck"].Value.ToString()))
                {
                    if (status >= 1) //if already found
                    {
                        status = 2;
                    }
                    else //first selected
                    {
                        status     = 1;
                        foundindex = index;
                    }
                }
                index++;
            }
            #endregion

            if (status == 0) //if no row selected
            {
                MetroMessageBox.Show(this, "\n" + Messages.CheckUnmatchedInvoice.NoSelectedRow, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                try
                {
                    var confirmResult = MetroMessageBox.Show(this, "\n" + Messages.CheckUnmatchedInvoice.ConfirmRefund, "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (confirmResult == DialogResult.Yes)
                    {
                        DataTable dt = new DataTable();
                        dt.Columns.Add("SEQ_NO");
                        int intseqno = 0;
                        for (int i = 0; i < dgvList.Rows.Count; i++) //get selected items
                        {
                            bool value = bool.Parse(dgvList[0, i].Value == null ? "false" : dgvList[0, i].Value.ToString());
                            if (value == true)
                            {
                                intseqno = int.Parse(dgvList.Rows[i].Cells["SEQ_NO"].Value.ToString());
                                DataRow dr = dt.NewRow();
                                dr["SEQ_NO"] = intseqno;
                                dt.Rows.Add(dr);
                            }
                        }

                        Controllers.frm36Controller oController = new Controllers.frm36Controller();
                        bool success = oController.RefundProcess(dt);
                        if (success)
                        {
                            btnCheckTheResult.PerformClick();
                            MetroMessageBox.Show(this, "\n" + Messages.CheckUnmatchedInvoice.StatusUpdatedToRefund, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
                catch (System.TimeoutException)
                {
                    MetroMessageBox.Show(this, "\n" + Messages.General.ServerTimeOut, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (System.Net.WebException)
                {
                    MetroMessageBox.Show(this, "\n" + Messages.General.NoConnection, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (Exception ex)
                {
                    Utility.WriteErrorLog(ex.Message, ex, false);
                    MetroMessageBox.Show(this, "\n" + Messages.General.ThereWasAnError, "Search Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }