//JIRA-908 Changes by Ravi on 13/02/2019 -- Start
        protected void btnYes_Click(object sender, EventArgs e)
        {
            try
            {
                string labelCode = hdnLabelCode.Value;
                labelMaintenanceBL = new LabelMaintenanceBL();
                DataSet labelData = labelMaintenanceBL.DeleteLabelData(labelCode, Convert.ToString(Session["UserCode"]), out errorId);
                labelMaintenanceBL = null;

                if (errorId == 1)
                {
                    msgView.SetMessage("Can't delete label as it's being used in contract.", MessageType.Success, PositionType.Auto);
                }
                else if (labelData.Tables.Count != 0 && errorId == 0)
                {
                    Session["LabelList"] = labelData.Tables[0];
                    BindGrid(labelData.Tables[0]);
                    txtLabelSearch.Text             = string.Empty;
                    hdnChangeNotSaved.Value         = "N";
                    hdnGridRowSelectedPrvious.Value = null;
                    msgView.SetMessage("Label deleted successfully.", MessageType.Success, PositionType.Auto);
                    hdnLabelCode.Value = "";
                }
                else
                {
                    msgView.SetMessage("Failed to delete label.", MessageType.Warning, PositionType.Auto);
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler("Failed to delete label.", ex.Message);
            }
        }
        //JIRA-746 CHanges by Ravi on 05/03/2019 -- End
        #endregion Events

        #region Methods

        private void LoadData()
        {
            labelMaintenanceBL = new LabelMaintenanceBL();
            DataSet initialData = labelMaintenanceBL.GetInitialData(out errorId);

            labelMaintenanceBL = null;

            if (initialData.Tables.Count != 0 && errorId != 2)
            {
                Session["LabelMaintData"] = initialData.Tables[0];

                BindGrid(initialData.Tables[0]);
            }
            else
            {
                ExceptionHandler("Error in fetching filter list data", string.Empty);
            }
        }
        protected void imgBtnInsert_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (Session["LabelMaintData"] != null)
                {
                    DataTable dtLabelData = Session["LabelMaintData"] as DataTable;
                    if (dtLabelData.Select("label_code = '" + txtLabelCode.Text + "'").Length != 0)
                    {
                        msgView.SetMessage("Label already exists with this label code.", MessageType.Success, PositionType.Auto);
                        return;
                    }
                }

                string userCode = WebUtility.HtmlDecode(System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString());

                labelMaintenanceBL = new LabelMaintenanceBL();
                DataSet labelData = labelMaintenanceBL.InsertLabelData(txtLabelCode.Text.Trim(), txtLabelDesc.Text.Trim(), userCode, out errorId);
                labelMaintenanceBL = null;

                if (labelData.Tables.Count != 0 && errorId != 2)
                {
                    Session["LabelMaintData"]          = labelData.Tables[0];
                    Session["FuzzySearchAllLabelList"] = labelData.Tables[1];
                    BindGrid(labelData.Tables[0]);
                    txtLabelDesc.Text               = string.Empty;
                    txtLabelCode.Text               = string.Empty;
                    txtLabelSearch.Text             = string.Empty;
                    hdnChangeNotSaved.Value         = "N";
                    hdnInsertDataNotSaved.Value     = "N";
                    hdnGridRowSelectedPrvious.Value = null;
                    msgView.SetMessage("Label created successfully.", MessageType.Success, PositionType.Auto);
                }
                else
                {
                    msgView.SetMessage("Failed to create label.", MessageType.Warning, PositionType.Auto);
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler("Error in creating label.", ex.Message);
            }
        }
        protected void btnSaveChanges_Click(object sender, EventArgs e)
        {
            try
            {
                if (hdnInsertDataNotSaved.Value == "Y")
                {
                    //Validate
                    Page.Validate("valInsertLabel");
                    if (!Page.IsValid)
                    {
                        mpeSaveUndo.Hide();
                        msgView.SetMessage("Invalid data entered.Please correct.", MessageType.Warning, PositionType.Auto);
                        return;
                    }

                    if (Session["LabelMaintData"] != null)
                    {
                        DataTable dtLabelData = Session["LabelMaintData"] as DataTable;
                        if (dtLabelData.Select("label_code = '" + txtLabelCode.Text + "'").Length != 0)
                        {
                            msgView.SetMessage("Label already exists with this label code.", MessageType.Success, PositionType.Auto);
                            return;
                        }
                    }


                    string userCode = WebUtility.HtmlDecode(System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString());

                    labelMaintenanceBL = new LabelMaintenanceBL();
                    DataSet labelData = labelMaintenanceBL.InsertLabelData(txtLabelCode.Text.Trim(), txtLabelDesc.Text.Trim(), userCode, out errorId);
                    labelMaintenanceBL = null;

                    if (labelData.Tables.Count != 0 && errorId != 2)
                    {
                        Session["LabelMaintData"]          = labelData.Tables[0];
                        Session["FuzzySearchAllLabelList"] = labelData.Tables[1];
                        BindGrid(labelData.Tables[0]);
                        txtLabelDesc.Text               = string.Empty;
                        txtLabelCode.Text               = string.Empty;
                        txtLabelSearch.Text             = string.Empty;
                        hdnChangeNotSaved.Value         = "N";
                        hdnInsertDataNotSaved.Value     = "N";
                        hdnGridRowSelectedPrvious.Value = null;
                        msgView.SetMessage("Label created successfully.", MessageType.Success, PositionType.Auto);
                    }
                    else
                    {
                        msgView.SetMessage("Failed create label.", MessageType.Warning, PositionType.Auto);
                    }
                }
                else if (hdnChangeNotSaved.Value == "Y")
                {
                    //Validate
                    Page.Validate("valUpdateLabel");
                    if (!Page.IsValid)
                    {
                        mpeSaveUndo.Hide();
                        msgView.SetMessage("Invalid data entered.Please correct.", MessageType.Warning, PositionType.Auto);
                        return;
                    }

                    string userCode  = WebUtility.HtmlDecode(System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString());
                    int    rowIndex  = Convert.ToInt32(hdnGridRowSelectedPrvious.Value);
                    string labelCode = ((Label)gvLabelDetails.Rows[rowIndex].FindControl("lblLabelCode")).Text;
                    string labelDesc = ((TextBox)gvLabelDetails.Rows[rowIndex].FindControl("txtLabelName")).Text;

                    labelMaintenanceBL = new LabelMaintenanceBL();
                    DataSet labelData = labelMaintenanceBL.UpdateLabelData(labelCode, labelDesc, userCode, out errorId);
                    labelMaintenanceBL = null;

                    if (labelData.Tables.Count != 0 && errorId != 2)
                    {
                        Session["LabelMaintData"]          = labelData.Tables[0];
                        Session["FuzzySearchAllLabelList"] = labelData.Tables[1];
                        //check if there is only one row in the grid before binding updated data.
                        //if count is 1 then only display that row
                        if (gvLabelDetails.Rows.Count == 1)
                        {
                            DataTable dtSearched = labelData.Tables[0].Clone();
                            DataRow[] foundRows  = labelData.Tables[0].Select("label_code = '" + labelCode + "'");
                            if (foundRows.Length != 0)
                            {
                                dtSearched = foundRows.CopyToDataTable();
                                BindGrid(dtSearched);
                            }
                        }
                        else
                        {
                            BindGrid(labelData.Tables[0]);
                        }
                        hdnChangeNotSaved.Value         = "N";
                        hdnGridRowSelectedPrvious.Value = null;
                        msgView.SetMessage("Label details updated successfully.", MessageType.Success, PositionType.Auto);
                    }
                    else
                    {
                        msgView.SetMessage("Failed to updated label details.", MessageType.Warning, PositionType.Auto);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler("Error in saving grid data", ex.Message);
            }
        }
        protected void gvLabelDetails_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                string userCode = WebUtility.HtmlDecode(System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString());

                if (e.CommandName == "saverow")
                {
                    if (!string.IsNullOrEmpty(hdnGridRowSelectedPrvious.Value))
                    {
                        int rowIndex = Convert.ToInt32(hdnGridRowSelectedPrvious.Value);
                        //int rowIndex = ((GridViewRow)((ImageButton)(e.CommandSource)).NamingContainer).RowIndex;
                        string labelCode = ((Label)gvLabelDetails.Rows[rowIndex].FindControl("lblLabelCode")).Text;
                        string labelDesc = ((TextBox)gvLabelDetails.Rows[rowIndex].FindControl("txtLabelName")).Text;

                        labelMaintenanceBL = new LabelMaintenanceBL();
                        DataSet labelData = labelMaintenanceBL.UpdateLabelData(labelCode, labelDesc, userCode, out errorId);
                        labelMaintenanceBL = null;

                        if (labelData.Tables.Count != 0 && errorId != 2)
                        {
                            Session["LabelMaintData"]          = labelData.Tables[0];
                            Session["FuzzySearchAllLabelList"] = labelData.Tables[1];

                            //check if there is only one row in the grid before binding updated data.
                            //if count is 1 then only display that row
                            if (gvLabelDetails.Rows.Count == 1)
                            {
                                DataTable dtSearched = labelData.Tables[0].Clone();
                                DataRow[] foundRows  = labelData.Tables[0].Select("label_code = '" + labelCode + "'");
                                if (foundRows.Length != 0)
                                {
                                    dtSearched = foundRows.CopyToDataTable();
                                    BindGrid(dtSearched);
                                }
                            }
                            else
                            {
                                BindGrid(labelData.Tables[0]);
                            }
                            hdnChangeNotSaved.Value         = "N";
                            hdnGridRowSelectedPrvious.Value = null;
                            msgView.SetMessage("Label details updated successfully.", MessageType.Success, PositionType.Auto);
                        }
                        else
                        {
                            msgView.SetMessage("Failed to updated label details.", MessageType.Warning, PositionType.Auto);
                        }
                    }
                }
                else if (e.CommandName == "cancelrow")
                {
                    if (Session["LabelMaintData"] != null)
                    {
                        DataTable dtLabelData = Session["LabelMaintData"] as DataTable;
                        if (gvLabelDetails.Rows.Count == 1)
                        {
                            string labelDesc = ((Label)gvLabelDetails.Rows[0].FindControl("lblLabelName")).Text;

                            ((TextBox)gvLabelDetails.Rows[0].FindControl("txtLabelName")).Text = labelDesc;
                        }
                        else
                        {
                            BindGrid(dtLabelData);
                            txtLabelSearch.Text = string.Empty;
                        }
                        hdnChangeNotSaved.Value         = "N";
                        hdnGridRowSelectedPrvious.Value = null;
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionHandler("Error in saving/deleting label data.", ex.Message);
            }
        }