protected void btnSave_Click(object sender, EventArgs e)
    {
        #region server side validation
        String strErrorMessage = "";

        if (txtSpeciality.Text.Trim() == "")
        {
            strErrorMessage += "- Enter Speciality <br/>";
        }
        if (strErrorMessage.Trim() != "")
        {
            lblErrorMessage.Text = strErrorMessage;
            return;
        }
        #endregion server side validation

        #region Collect Form Data
        SpecialityENT entSpeciality = new SpecialityENT();

        if (txtSpeciality.Text.Trim() != "")
        {
            entSpeciality.SpecialityName = txtSpeciality.Text.Trim();
        }
        #endregion Collect Form Data

        SpecialityBAL balSpeciality = new SpecialityBAL();

        if (Convert.ToBoolean(ViewState["SpecialityEditActive"]) == false)
        {
            if (balSpeciality.Insert(entSpeciality))
            {
                fillGridviewSpeciality();
                ClientScript.RegisterStartupScript(GetType(), "SweetAlert", "swal({ type: 'success', title: 'Speciality Inserted Successfully', showConfirmButton: false, timer: 2000});", true);
                ClearControls();
            }
            else
            {
                lblErrorMessage.Text = balSpeciality.Message;
            }
        }
        else
        {
            entSpeciality.SpecialityID = Convert.ToInt32(ViewState["SpecialityID"]);
            if (balSpeciality.Update(entSpeciality))
            {
                fillGridviewSpeciality();
                ClientScript.RegisterStartupScript(GetType(), "SweetAlert", "swal({ type: 'success', title: 'Speciality Edited Successfully', showConfirmButton: false, timer: 2000});", true);
                ClearControls();
                ViewState["SpecialityEditActive"] = false;
                lblModalTitle.Text = "Speciality Add";
            }
            else
            {
                lblErrorMessage.Text = balSpeciality.Message;
            }
        }
    }
        public SpecialityENT SelectByPK(SqlInt32 SpecialityID)
        {
            using (SqlConnection objConn = new SqlConnection(ConnectionString))
            {
                objConn.Open();
                using (SqlCommand objCmd = objConn.CreateCommand())
                {
                    try
                    {
                        #region Prepare Command
                        objCmd.CommandType = CommandType.StoredProcedure;
                        objCmd.CommandText = "PR_Speciality_SelectByPK";
                        objCmd.Parameters.Add("@SpecialityID", SqlDbType.Int).Value = SpecialityID;
                        #endregion Prepare Command

                        #region ReadData and Set Controls
                        SpecialityENT entSpeciality = new SpecialityENT();
                        using (SqlDataReader objSDR = objCmd.ExecuteReader())
                        {
                            while (objSDR.Read())
                            {
                                if (!objSDR["SpecialityID"].Equals(DBNull.Value))
                                {
                                    entSpeciality.SpecialityID = Convert.ToInt32(objSDR["SpecialityID"]);
                                }
                                if (!objSDR["SpecialityName"].Equals(DBNull.Value))
                                {
                                    entSpeciality.SpecialityName = Convert.ToString(objSDR["SpecialityName"]);
                                }
                            }
                        }
                        return(entSpeciality);

                        #endregion ReadData and Set Controls
                    }
                    catch (SqlException sqlEx)
                    {
                        Message = sqlEx.InnerException.Message;
                        return(null);
                    }
                    catch (Exception ex)
                    {
                        Message = ex.InnerException.Message;
                        return(null);
                    }
                    finally
                    {
                        if (objConn.State == ConnectionState.Open)
                        {
                            objConn.Close();
                        }
                    }
                }
            }
        }
    private void FillControls(SqlInt32 SpecialityID)
    {
        SpecialityBAL balSpeciality = new SpecialityBAL();
        SpecialityENT entSpeciality = new SpecialityENT();

        entSpeciality = balSpeciality.SelectByPK(SpecialityID);

        if (!entSpeciality.SpecialityName.IsNull)
        {
            txtSpeciality.Text = entSpeciality.SpecialityName.Value.ToString();
        }
    }
        public Boolean Update(SpecialityENT entSpeciality)
        {
            SpecialityDAL dalSpeciality = new SpecialityDAL();

            if (dalSpeciality.Update(entSpeciality))
            {
                return(true);
            }
            else
            {
                Message = dalSpeciality.Message;
                return(false);
            }
        }
        public Boolean Insert(SpecialityENT entSpeciality)
        {
            using (SqlConnection objConn = new SqlConnection(ConnectionString))
            {
                objConn.Open();
                using (SqlCommand objCmd = objConn.CreateCommand())
                {
                    try
                    {
                        #region Prepare Command
                        objCmd.CommandType = CommandType.StoredProcedure;
                        objCmd.CommandText = "PR_Speciality_Insert";
                        objCmd.Parameters.Add("@SpecialityID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
                        objCmd.Parameters.Add("@SpecialityName", SqlDbType.VarChar).Value  = entSpeciality.SpecialityName;
                        #endregion Prepare Command

                        objCmd.ExecuteNonQuery();

                        if (objCmd.Parameters["@SpecialityID"] != null)
                        {
                            entSpeciality.SpecialityID = Convert.ToInt32(objCmd.Parameters["@SpecialityID"].Value);
                        }

                        return(true);
                    }
                    catch (SqlException sqlEx)
                    {
                        Message = sqlEx.InnerException.Message;
                        return(false);
                    }
                    catch (Exception ex)
                    {
                        Message = ex.InnerException.Message;
                        return(false);
                    }
                    finally
                    {
                        if (objConn.State == ConnectionState.Open)
                        {
                            objConn.Close();
                        }
                    }
                }
            }
        }
        public Boolean Update(SpecialityENT entSpeciality)
        {
            using (SqlConnection objConn = new SqlConnection(ConnectionString))
            {
                objConn.Open();
                using (SqlCommand objCmd = objConn.CreateCommand())
                {
                    try
                    {
                        #region Prepare Command
                        objCmd.CommandType = CommandType.StoredProcedure;
                        objCmd.CommandText = "PR_Speciality_UpdateByPK";
                        objCmd.Parameters.Add("@SpecialityID", SqlDbType.Int).Value       = entSpeciality.SpecialityID;
                        objCmd.Parameters.Add("@SpecialityName", SqlDbType.VarChar).Value = entSpeciality.SpecialityName;
                        #endregion Prepare Command

                        objCmd.ExecuteNonQuery();

                        return(true);
                    }
                    catch (SqlException sqlEx)
                    {
                        Message = sqlEx.InnerException.Message;
                        return(false);
                    }
                    catch (Exception ex)
                    {
                        Message = ex.InnerException.Message;
                        return(false);
                    }
                    finally
                    {
                        if (objConn.State == ConnectionState.Open)
                        {
                            objConn.Close();
                        }
                    }
                }
            }
        }
    public void fillHospitalDetails(SqlInt32 HospitalID)
    {
        HospitalBAL balHospital = new HospitalBAL();
        HospitalENT entHospital = new HospitalENT();

        entHospital = balHospital.SelectByPK(HospitalID);

        if (!entHospital.HospitalName.IsNull)
        {
            lblHospitalName.Text = entHospital.HospitalName.Value;
        }
        if (!entHospital.SpecialityID.IsNull)
        {
            SpecialityBAL balSpeciality = new SpecialityBAL();
            SpecialityENT entSpeciality = new SpecialityENT();

            entSpeciality = balSpeciality.SelectByPK(Convert.ToInt32(entHospital.SpecialityID.Value));

            lblSpeciality.Text = entSpeciality.SpecialityName.Value;
        }
        if (!entHospital.Overview.IsNull)
        {
            lblOverview.Text = entHospital.Overview.Value;
        }
        if (!entHospital.Address.IsNull)
        {
            hlAddress.Text = entHospital.Address.Value;
        }
        if (!entHospital.Email.IsNull)
        {
            hlEmail.NavigateUrl = "mailto:" + entHospital.Email.Value;
            hlEmail.Text        = entHospital.Email.Value;
        }
        if (!entHospital.Mobile.IsNull)
        {
            hlMobile.NavigateUrl = "tel:" + entHospital.Mobile.Value;
            hlMobile.Text        = entHospital.Mobile.Value;
        }

        HospitalWiseReportBAL balHospitalWiseReport = new HospitalWiseReportBAL();
        DataTable             dtReport = new DataTable();

        dtReport = balHospitalWiseReport.SelectByHospitalID(HospitalID);

        rptReport.DataSource = dtReport;
        rptReport.DataBind();

        DoctorBAL balDoctorBAL = new DoctorBAL();
        DataTable dtDoctor     = new DataTable();

        dtDoctor = balDoctorBAL.SelectByHospitalID(HospitalID);

        if (dtDoctor != null && dtDoctor.Rows.Count > 0)
        {
            rptDoctors.DataSource = dtDoctor;
            rptDoctors.DataBind();

            pnlNoDoctorFound.Visible = false;
        }
        else
        {
            pnlNoDoctorFound.Visible = true;
        }

        if (Convert.ToBoolean(Application["CheckAdmin"]) == true && Convert.ToBoolean(Application["CheckDoctor"]) == false)
        {
            lbEditHospital.Visible = true;
            lbDoctorAdd.Visible    = true;
        }
        else if (Convert.ToBoolean(Application["CheckAdmin"]) == false && Convert.ToBoolean(Application["CheckDoctor"]) == true)
        {
            lbEditHospital.Visible = false;
            lbDoctorAdd.Visible    = false;

            Boolean checkDoctor = dtDoctor.Select().ToList().Exists(row => row["DoctorID"].ToString().ToUpper() == Session["UserID"].ToString());

            if (checkDoctor == true)
            {
                lbEditHospital.Visible = true;
            }
        }
    }
    public void fillHospitalDetails(SqlInt32 HospitalID)
    {
        HospitalBAL balHospital = new HospitalBAL();
        HospitalENT entHospital = new HospitalENT();

        entHospital = balHospital.SelectByPK(HospitalID);

        if (!entHospital.HospitalName.IsNull)
        {
            lblHospitalName.Text = entHospital.HospitalName.Value;
        }
        if (!entHospital.SpecialityID.IsNull)
        {
            SpecialityBAL balSpeciality = new SpecialityBAL();
            SpecialityENT entSpeciality = new SpecialityENT();

            entSpeciality = balSpeciality.SelectByPK(Convert.ToInt32(entHospital.SpecialityID.Value));

            lblSpeciality.Text = entSpeciality.SpecialityName.Value;
        }
        if (!entHospital.Overview.IsNull)
        {
            lblOverview.Text = entHospital.Overview.Value;
        }
        if (!entHospital.Address.IsNull)
        {
            hlAddress.Text = entHospital.Address.Value;
        }
        if (!entHospital.Email.IsNull)
        {
            hlEmail.NavigateUrl = "mailto:" + entHospital.Email.Value;
            hlEmail.Text        = entHospital.Email.Value;
        }
        if (!entHospital.Mobile.IsNull)
        {
            hlMobile.NavigateUrl = "tel:" + entHospital.Mobile.Value;
            hlMobile.Text        = entHospital.Mobile.Value;
        }

        HospitalWiseReportBAL balHospitalWiseReport = new HospitalWiseReportBAL();
        DataTable             dtReport = new DataTable();

        dtReport = balHospitalWiseReport.SelectByHospitalID(HospitalID);

        rptReport.DataSource = dtReport;
        rptReport.DataBind();

        DoctorBAL balDoctorBAL = new DoctorBAL();
        DataTable dtDoctor     = new DataTable();

        dtDoctor = balDoctorBAL.SelectByHospitalID(HospitalID);

        if (dtDoctor != null && dtDoctor.Rows.Count > 0)
        {
            rptDoctors.DataSource = dtDoctor;
            rptDoctors.DataBind();

            pnlNoDoctorFound.Visible = false;
        }
        else
        {
            pnlNoDoctorFound.Visible = true;
        }
    }