public static STD_ClassSubjectEmployeeStudent GetSTD_ClassSubjectEmployeeStudentByClassSubjectEmployeeStudentID(int ClassSubjectEmployeeStudentID)
 {
     STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent = new STD_ClassSubjectEmployeeStudent();
     SqlSTD_ClassSubjectEmployeeStudentProvider sqlSTD_ClassSubjectEmployeeStudentProvider = new SqlSTD_ClassSubjectEmployeeStudentProvider();
     sTD_ClassSubjectEmployeeStudent = sqlSTD_ClassSubjectEmployeeStudentProvider.GetSTD_ClassSubjectEmployeeStudentByClassSubjectEmployeeStudentID(ClassSubjectEmployeeStudentID);
     return sTD_ClassSubjectEmployeeStudent;
 }
    protected void btnAddAttendant_Click(object sender, EventArgs e)
    {
        try
        {
            DateTime date = new DateTime();
            date = Convert.ToDateTime(txtAttendantDate.Text);
            string sdate = date.ToString("yyyy-MM-dd");
            date = Convert.ToDateTime(sdate + " " + ddlStartHour.SelectedValue + ":" + ddlStartMin.SelectedValue + " "+ddlStartAMPM.SelectedValue);

            //DataSet dsStudentAttendence = STD_StudentManager.GetSTD_ClassStudentsAttentdant(ddlEmployeeID.SelectedValue, date);
            DataSet dsStudentAttendence = dsStudentAttendence = STD_StudentManager.GetSTD_ClassSubjectEmployeeStudentByClassSubjectEmployeeIDForRepeating(
                ((Label)gvSTD_ClassSubjectEmployeeStudent.Rows[0].FindControl("lblClassSubjectEmloyeeID")).Text
                , date);

            if (dsStudentAttendence.Tables[0].Rows.Count == 0)
            {

                foreach (GridViewRow row in gvSTD_ClassSubjectEmployeeStudent.Rows)
                {
                    CheckBox chbAttendants = (CheckBox)row.FindControl("chbAttendants");
                    Label lblClassSubjectEmloyeeID = (Label)row.FindControl("lblClassSubjectEmloyeeID");
                    Label lblStudentID = (Label)row.FindControl("lblStudentID");

                    TextBox txtRemark = (TextBox)row.FindControl("txtRemark");
                    //if (txtRemark.Text != "")
                    //{
                    //    COMN_Remark cOMN_Remark = new COMN_Remark();
                    //    //	cOMN_Remark.RemarkID=  int.Parse(ddlRemarkID.SelectedValue);
                    //    cOMN_Remark.RemarkName = "Attendence Remark";
                    //    cOMN_Remark.Remark = txtRemark.Text;
                    //    cOMN_Remark.RemarkDate = DateTime.Parse(txtAttendantDate.Text);
                    //    cOMN_Remark.WhoReported = STD_StudentManager.GetSTD_StudentByStudentID(Profile.card_id).StudentCode;
                    //    cOMN_Remark.WhoDid = STD_StudentManager.GetSTD_StudentByStudentID(lblStudentID.Text).StudentCode;
                    //    cOMN_Remark.ExtraField1 = txtAttendantDate.Text + " (" + DateTime.Parse(txtAttendantDate.Text).ToString("ddd") + ") - " + ddlStartHour.SelectedValue + ":" + ddlStartMin.SelectedValue + " " + ddlStartAMPM.SelectedValue + " - " + ddlEndHour.SelectedValue + ":" + ddlEndMin.SelectedValue + " " + ddlEndAMPM.SelectedValue;
                    //    cOMN_Remark.ExtraField2 = "";
                    //    cOMN_Remark.ExtraField3 = "";
                    //    cOMN_Remark.ExtraField4 = "";
                    //    cOMN_Remark.ExtraField5 = "";
                    //    cOMN_Remark.AddedBy = Profile.card_id;
                    //    cOMN_Remark.AddedDate = DateTime.Now;
                    //    cOMN_Remark.UpdatedBy = Profile.card_id;
                    //    cOMN_Remark.UpdatedDate = DateTime.Now;
                    //    cOMN_Remark.RowStatusID = 1;// int.Parse(ddlRowStatusID.SelectedValue);
                    //    int resutl = COMN_RemarkManager.InsertCOMN_Remark(cOMN_Remark);

                    //}

                    //if (chbAttendants.Checked)
                    //{
                        STD_ClassSubjectEmployeeStudent css = new STD_ClassSubjectEmployeeStudent();

                        css.ClassSubjectEmployeeID = Convert.ToInt32(lblClassSubjectEmloyeeID.Text);
                        css.StudentID = lblStudentID.Text;
                        css.RowStatusID = 1;
                        css.AddedBy = Profile.card_id;

                        css.UpdateDate = DateTime.Now;
                        css.UpdatedBy = Profile.card_id;
                        css.AddedDate = date;

                        //if (chkManualDataEntry.Checked)
                        //{
                            css.ExtraField1 = txtAttendantDate.Text + " (" + DateTime.Parse(txtAttendantDate.Text).ToString("ddd") + ") - " + ddlStartHour.SelectedValue + ":" + ddlStartMin.SelectedValue + " " + ddlStartAMPM.SelectedValue + " - " + ddlEndHour.SelectedValue + ":" + ddlEndMin.SelectedValue + " " + ddlEndAMPM.SelectedValue;
                        //}
                        //else
                        //{
                        //    css.ExtraField1 = hfAttendenceDataTime.Value;
                        //}

                        css.ExtraField2 = ddlEmployeeID.SelectedValue;
                        css.ExtraField3 = txtCoveredSyllabus.Text; //temporary we are sending data for covered Syllabus
                        css.TodayRemark = txtRemark.Text;
                        css.IsExam = chkExamTaken.Checked;
                        css.IsAbsence = !chbAttendants.Checked;

                        int result = STD_ClassSubjectEmployeeStudentManager.InsertSTD_ClassSubjectEmployeeStudent(css);

                        if (result > 0)
                        {
                            //ScriptManager.RegisterStartupScript(this, typeof(Page), "Message", "alert('Add Attendants Successully.');", true);

                            //pnAttendantDate.Visible = true;

                            //DataSet ca = STD_ClassSubjectEmployeeStudentManager.GetSTD_AttendantDateByEmployeeID(ddlEmployeeID.SelectedValue);
                            //lblNoAttendant.Text = ca.Tables[0].Rows.Count.ToString();
                            //gvSTD_AttendantTime.DataSource = ca;
                            //gvSTD_AttendantTime.DataBind();
                            //btnAddAttendant.Visible = false;
                        }

                    //}
                }
                ScriptManager.RegisterStartupScript(this, typeof(Page), "Message", "alert('Add Attendants Successully.');", true);
            }

            else
            {
                ScriptManager.RegisterStartupScript(this, typeof(Page), "Message", "alert('Attendants is already exist for this date time.');", true);
            }

            ddlEmployeeID_SelectedIndexChanged(this, new EventArgs());
        }
        catch (Exception ex)
        {
        }
    }
    public bool UpdateSTD_ClassSubjectEmployeeStudent(STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent)
    {
        using (SqlConnection connection = new SqlConnection(this.ConnectionString))
        {
            SqlCommand cmd = new SqlCommand("UpdateSTD_ClassSubjectEmployeeStudent", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@ClassSubjectEmployeeStudentID", SqlDbType.Int).Value = sTD_ClassSubjectEmployeeStudent.ClassSubjectEmployeeStudentID;
            cmd.Parameters.Add("@ClassSubjectEmployeeID", SqlDbType.Int).Value = sTD_ClassSubjectEmployeeStudent.ClassSubjectEmployeeID;
            cmd.Parameters.Add("@StudentID", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.StudentID;
            cmd.Parameters.Add("@UpdatedBy", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.UpdatedBy;
            cmd.Parameters.Add("@UpdateDate", SqlDbType.DateTime).Value = sTD_ClassSubjectEmployeeStudent.UpdateDate;
            cmd.Parameters.Add("@RowStatusID", SqlDbType.Int).Value = sTD_ClassSubjectEmployeeStudent.RowStatusID;
            cmd.Parameters.Add("@ExtraField1", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.ExtraField1;
            cmd.Parameters.Add("@ExtraField2", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.ExtraField2;
            connection.Open();

            int result = cmd.ExecuteNonQuery();
            return result == 1;
        }
    }
    public int InsertSTD_ClassSubjectEmployeeStudent(STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent)
    {
        using (SqlConnection connection = new SqlConnection(this.ConnectionString))
        {
            SqlCommand cmd = new SqlCommand("InsertSTD_ClassSubjectEmployeeStudent", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@ClassSubjectEmployeeStudentID", SqlDbType.Int).Direction = ParameterDirection.Output;
            cmd.Parameters.Add("@ClassSubjectEmployeeID", SqlDbType.Int).Value = sTD_ClassSubjectEmployeeStudent.ClassSubjectEmployeeID;
            cmd.Parameters.Add("@StudentID", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.StudentID;
            cmd.Parameters.Add("@AddedBy", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.AddedBy;
            cmd.Parameters.Add("@AddedDate", SqlDbType.DateTime).Value = sTD_ClassSubjectEmployeeStudent.AddedDate;
            cmd.Parameters.Add("@UpdatedBy", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.UpdatedBy;
            cmd.Parameters.Add("@UpdateDate", SqlDbType.DateTime).Value = sTD_ClassSubjectEmployeeStudent.UpdateDate;
            cmd.Parameters.Add("@RowStatusID", SqlDbType.Int).Value = sTD_ClassSubjectEmployeeStudent.RowStatusID;
            cmd.Parameters.Add("@ExtraField1", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.ExtraField1;
            cmd.Parameters.Add("@ExtraField2", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.ExtraField2;
            cmd.Parameters.Add("@ExtraField3", SqlDbType.NVarChar).Value = sTD_ClassSubjectEmployeeStudent.ExtraField3;
            cmd.Parameters.Add("@TodayRemark", SqlDbType.NText).Value = sTD_ClassSubjectEmployeeStudent.TodayRemark;
            cmd.Parameters.Add("@IsExam", SqlDbType.Bit).Value = sTD_ClassSubjectEmployeeStudent.IsExam;
            cmd.Parameters.Add("@IsAbsence", SqlDbType.Bit).Value = sTD_ClassSubjectEmployeeStudent.IsAbsence;

            connection.Open();

            int result = cmd.ExecuteNonQuery();
            return (int)cmd.Parameters["@ClassSubjectEmployeeStudentID"].Value;
        }
    }
    public STD_ClassSubjectEmployeeStudent GetSTD_ClassSubjectEmployeeStudentFromReader(IDataReader reader)
    {
        try
        {
            STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent = new STD_ClassSubjectEmployeeStudent
                (
                     DataAccessObject.IsNULL<int>(reader["ClassSubjectEmployeeStudentID"]),
                     DataAccessObject.IsNULL<int>(reader["ClassSubjectEmployeeID"]),
                     DataAccessObject.IsNULL<string>(reader["StudentID"].ToString()),
                     DataAccessObject.IsNULL<string>(reader["AddedBy"].ToString()),
                     DataAccessObject.IsNULL<DateTime>(reader["AddedDate"]),
                     DataAccessObject.IsNULL<string>(reader["UpdatedBy"].ToString()),
                     DataAccessObject.IsNULL<DateTime>(reader["UpdateDate"]),
                     DataAccessObject.IsNULL<int>(reader["RowStatusID"]),
                     DataAccessObject.IsNULL<string>(reader["ExtraField1"].ToString()),
                     DataAccessObject.IsNULL<string>(reader["ExtraField2"].ToString())

                );
             return sTD_ClassSubjectEmployeeStudent;
        }
        catch(Exception ex)
        {
            return null;
        }
    }
 public static bool UpdateSTD_ClassSubjectEmployeeStudent(STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent)
 {
     SqlSTD_ClassSubjectEmployeeStudentProvider sqlSTD_ClassSubjectEmployeeStudentProvider = new SqlSTD_ClassSubjectEmployeeStudentProvider();
     return sqlSTD_ClassSubjectEmployeeStudentProvider.UpdateSTD_ClassSubjectEmployeeStudent(sTD_ClassSubjectEmployeeStudent);
 }
 public static int InsertSTD_ClassSubjectEmployeeStudent(STD_ClassSubjectEmployeeStudent sTD_ClassSubjectEmployeeStudent)
 {
     SqlSTD_ClassSubjectEmployeeStudentProvider sqlSTD_ClassSubjectEmployeeStudentProvider = new SqlSTD_ClassSubjectEmployeeStudentProvider();
     return sqlSTD_ClassSubjectEmployeeStudentProvider.InsertSTD_ClassSubjectEmployeeStudent(sTD_ClassSubjectEmployeeStudent);
 }