//protected void btnViewList_Click(object sender, EventArgs e)
        //{
        //    //if (ViewState["Mode"].ToString() == "Save")
        //    //{
        //    //    BindExamConfig();
        //    //    ViewState["Mode"] = "Edit";
        //    //}
        //    //else
        //    //{
        //    //    BindExamConfig();
        //    //    ViewState["Mode"] = "Save";
        //    //}

        //    try
        //    {
        //        ClearAll();
        //        PanelVisibility(1);
        //    }
        //    catch (Exception ex)
        //    {
        //        logger.Error("Error", ex);
        //        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
        //    }
        //}
        #endregion


        #region Bind Exam Configuration Gridview

        public void BindExamConfig()
        {
            try
            {
                ApplicationResult   objResult = new ApplicationResult();
                ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();

                objResult = objExamConfigurationBL.ExamConfigurationBL_SelectAll(Convert.ToInt32(Session[ApplicationSession.SCHOOLID]));
                if (objResult != null)
                {
                    gvExamConfig.DataSource = objResult.resultDT;
                    gvExamConfig.DataBind();
                    if (objResult.resultDT.Rows.Count > 0)
                    {
                        gvExamConfig.Visible = true;
                    }
                    else
                    {
                        gvExamConfig.Visible = false;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }
        protected void gvExamConfig_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();

                ViewState["ExamConfigID"] = Convert.ToInt32(e.CommandArgument.ToString());
                if (e.CommandName.ToString() == "Edit1")
                {
                    ApplicationResult objResultsEdit = new ApplicationResult();
                    objResultsEdit = objExamConfigurationBL.ExamConfigurationBL_Select(Convert.ToInt32(ViewState["ExamConfigID"].ToString()));

                    if (objResultsEdit != null)
                    {
                        if (objResultsEdit.resultDT.Rows.Count > 0)
                        {
                            btnsave.Visible        = true;
                            ViewState["Mode"]      = "Edit";
                            ddlClass.SelectedValue = objResultsEdit.resultDT.Rows[0][ExamConfigurationBO.EXAMCONFIGURATIONBO_CLASSID].ToString();
                            ddlClass_SelectedIndexChanged(sender, e);
                            ddlAcademicYear.Text = objResultsEdit.resultDT.Rows[0][ExamConfigurationBO.EXAMCONFIGURATIONBO_ACADEMICYEAR].ToString();
                            ddlExam.Text         = objResultsEdit.resultDT.Rows[0][ExamConfigurationBO.EXAMCONFIGURATIONBO_EXAM].ToString();
                            BindSubject_ForEdit();
                            PanelVisibility(2);
                        }
                        else
                        {
                            ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('You cannot Update Exam.Marks Already Saved');</script>");
                        }
                    }
                }

                if (e.CommandName.ToString() == "Delete1")
                {
                    Controls objControls = new Controls();

                    ApplicationResult objDelete = new ApplicationResult();
                    int    LastModofiedID       = Convert.ToInt32(Session[ApplicationSession.USERID]);
                    string LastModifiedDate     = DateTime.UtcNow.AddHours(5.5).ToString();
                    objDelete = objExamConfigurationBL.ExamConfigurationBL_Delete(Convert.ToInt32(e.CommandArgument.ToString()), LastModofiedID, LastModifiedDate);
                    if (objDelete.status == ApplicationResult.CommonStatusType.SUCCESS)
                    {
                        PanelVisibility(1);
                        BindExamConfig();
                        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script language='JavaScript'>alert('Exam Details Deleted Successfully.');</script>");
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('You cannot delete this record because it is in used.');</script>");
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }
        protected void btnGo_Click(object sender, EventArgs e)
        {
            try
            {
                ApplicationResult   objResult = new ApplicationResult();
                ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();
                objResult = objExamConfigurationBL.ExamConfiguration_Select_Result_ClassWise_GradeReport(Convert.ToInt32(ddlClass.SelectedValue), Convert.ToInt32(ddlDivision.SelectedValue),
                                                                                                         ddlAcademicYear.SelectedItem.ToString(), Convert.ToInt32(Session[ApplicationSession.SCHOOLID]));
                if (objResult.resultDT.Rows.Count > 0)
                {
                    gvReport.DataSource = objResult.resultDT;
                    gvReport.DataBind();
                    //TemplateField tf = new TemplateField();
                    //tf.HeaderText = "TEMPLATE FIELD";
                    //tf.Visible = true;

                    //this.gvReport.Columns.Insert(0, tf);
                    divReport.Visible = true;
                    //if (gvReport.Rows.Count > 1)
                    //{
                    //    for (int i = 0; i < gvReport.Rows.Count - 1; i++)
                    //    {
                    //        gvReport.Rows[i].Cells[0].Text = (i + 1).ToString();
                    //    }
                    //}
                    pnlEmployeeInfo.Visible = false;
                    lblTrust.Text           = Session[ApplicationSession.TRUSTNAME].ToString();
                    lblSchool.Text          = Session[ApplicationSession.SCHOOLNAME].ToString();
                    lblClass.Text           = ddlClass.SelectedItem.ToString();
                    lblDivision.Text        = ddlDivision.SelectedItem.ToString();
                    lblAcademicYear.Text    = ddlAcademicYear.SelectedItem.ToString();
                    //lblExam.Text = ddlExam.SelectedItem.ToString();
                }
                else
                {
                    divReport.Visible = false;
                    // btnPrintDetail.Visible = false;
                    pnlEmployeeInfo.Visible = true;
                    ClearAll();
                    ScriptManager.RegisterStartupScript(this, GetType(), "alert", "alert('No Records Found.');", true);
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }
        public void BindSubject()
        {
            ApplicationResult   objResult              = new ApplicationResult();
            Controls            objControls            = new Controls();
            ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();

            objResult = objExamConfigurationBL.ExamConfiguration_Select_Subject(
                Convert.ToInt32(ddlClass.SelectedValue), Convert.ToInt32(ddlDivision.SelectedValue),
                ddlAcademicYear.SelectedItem.ToString(), ddlExam.SelectedItem.ToString());

            if (objResult != null)
            {
                if (objResult.resultDT.Rows.Count > 0)
                {
                    objControls.BindDropDown_ListBox(objResult.resultDT, ddlSubject, "NameEng", "SubjectMID");
                    ddlSubject.Items.Insert(0, new ListItem("--Select--", ""));
                }
                else
                {
                    ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('No Subjects To be Bound.');</script>");
                }
            }
        }
        public void BindSubject_ForEdit()
        {
            try
            {
                ApplicationResult   objResult              = new ApplicationResult();
                Controls            objControls            = new Controls();
                ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();

                objResult = objExamConfigurationBL.ExamConfiguration_Select_Subject_ForEdit(Convert.ToInt32(ViewState["ExamConfigID"].ToString()), Convert.ToInt32(Session[ApplicationSession.SCHOOLID]));

                if (objResult != null)
                {
                    objControls.BindDropDown_ListBox(objResult.resultDT, lbDestSubject, "NameEng", "SubjectMID");
                    if (objResult.resultDT.Rows.Count > 0)
                    {
                    }
                }

                ApplicationResult objResult1   = new ApplicationResult();
                Controls          objControls1 = new Controls();
                objResult1 = objExamConfigurationBL.ExamConfiguration_Select_Subject_ForEdit_SourceListBox(Convert.ToInt32(ViewState["ExamConfigID"].ToString()), Convert.ToInt32(Session[ApplicationSession.SCHOOLID]));

                if (objResult1 != null)
                {
                    objControls1.BindDropDown_ListBox(objResult1.resultDT, lbSrcSubject, "NameEng", "SubjectMID");
                    if (objResult1.resultDT.Rows.Count > 0)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp", "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                ApplicationResult   objResult = new ApplicationResult();
                ExamConfigurationBO objExamConfigurationBO = new ExamConfigurationBO();
                ExamConfigurationBL objExamConfigurationBL = new ExamConfigurationBL();
                int intExamConfigID = 0;
                objExamConfigurationBO.ClassId      = Convert.ToInt32(ddlClass.SelectedValue);
                objExamConfigurationBO.DivisionId   = Convert.ToInt32(ViewState["DivisionTID"]);
                objExamConfigurationBO.AcademicYear = ddlAcademicYear.SelectedItem.ToString();
                objExamConfigurationBO.Exam         = ddlExam.SelectedItem.ToString();
                objExamConfigurationBO.SchoolMID    = Convert.ToInt32(Session[ApplicationSession.SCHOOLID]);
                objExamConfigurationBO.IsDeleted    = 0;
                foreach (ListItem i in lbDestSubject.Items)
                {
                    SubjectIDs += i.Value + ",";
                }
                SubjectIDs = SubjectIDs.Substring(0, SubjectIDs.Length - 1);
                objExamConfigurationBO.SubjectId = SubjectIDs;
                if (ViewState["Mode"].ToString() == "Save")
                {
                    intExamConfigID = -1;
                }
                else if (ViewState["Mode"].ToString() == "Edit")
                {
                    intExamConfigID = Convert.ToInt32(ViewState["ExamConfigID"]);
                }
                objResult =
                    objExamConfigurationBL.ExamConfigurationBL_ValidateName(Convert.ToInt32(ddlClass.SelectedValue),
                                                                            Convert.ToInt32(ViewState["DivisionTID"]), ddlExam.SelectedItem.ToString(),
                                                                            ddlAcademicYear.SelectedItem.ToString(), intExamConfigID, Convert.ToInt32(Session[ApplicationSession.SCHOOLID]));

                if (objResult != null)
                {
                    if (objResult.resultDT.Rows.Count > 0)
                    {
                        ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                           "<script>alert('Exam already Saved.');</script>");
                    }
                    else
                    {
                        if (ViewState["Mode"].ToString() == "Save")
                        {
                            objExamConfigurationBO.CreatedByUserId = Convert.ToInt32(Session[ApplicationSession.USERID]);
                            objExamConfigurationBO.CreatedDate     = DateTime.UtcNow.AddHours(5.5).ToString();
                            objResult = objExamConfigurationBL.ExamConfigurationBL_Insert(objExamConfigurationBO);
                            if (objResult != null)
                            {
                                Controls objControls = new Controls();
                                objControls.ClearForm(Master.FindControl("ContentPlaceHolder1"));
                                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                                   "<script language='javascript'>alert('Exam Details Saved Successfully.');</script>");
                            }
                        }
                        else if (ViewState["Mode"].ToString() == "Edit")
                        {
                            objExamConfigurationBO.ExamConfigId = Convert.ToInt32(ViewState["ExamConfigID"]);
                            //objExamConfigurationBO.ClassId = Convert.ToInt32(ddlClass.SelectedValue);
                            //objExamConfigurationBO.DivisionId = Convert.ToInt32(ViewState["DivisionTID"]);
                            //objExamConfigurationBO.AcademicYear = ddlAcademicYear.SelectedItem.ToString();
                            //objExamConfigurationBO.Exam = ddlExam.SelectedItem.ToString();
                            //objExamConfigurationBO.IsDeleted = 0;
                            //foreach (ListItem i in lbDestSubject.Items)
                            //{
                            //    SubjectIDs += i.Value + ",";
                            //}
                            //SubjectIDs = SubjectIDs.Substring(0, SubjectIDs.Length - 1);
                            //objExamConfigurationBO.SubjectId = SubjectIDs;
                            objExamConfigurationBO.LastModifiedBy   = Convert.ToInt32(Session[ApplicationSession.USERID]);
                            objExamConfigurationBO.LastModifiedDate = DateTime.UtcNow.AddHours(5.5).ToString();
                            objResult = objExamConfigurationBL.ExamConfigurationBL_Update(objExamConfigurationBO);
                            if (objResult.resultDT.Rows[0][0].ToString() == "333")
                            {
                                Controls objControls = new Controls();
                                objControls.ClearForm(Master.FindControl("ContentPlaceHolder1"));
                                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                                   "<script language='javascript'>alert('Exam Details Updated Successfully.');</script>");
                            }
                            else if (objResult.resultDT.Rows[0][0].ToString() == "222")
                            {
                                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                                   "<script language='javascript'>alert('Exam Details Can not be Updated.');</script>");
                            }
                            else
                            {
                                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                                   "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
                            }
                        }
                        ClearAll();
                        BindExamConfig();
                        PanelVisibility(1);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error", ex);
                ClientScript.RegisterStartupScript(typeof(Page), "MessagePopUp",
                                                   "<script>alert('Oops! There is some technical issue. Please Contact to your administrator.');</script>");
            }
        }