public static List <ATTSessionCourseMember> GetSessionCourseMemberForMarks(int orgID, int prgID, int sessionID, int?CourseID)
        {
            List <ATTSessionCourseMember> lstMem = new List <ATTSessionCourseMember>();

            try
            {
                foreach (DataRow grow in DLLSessionCourseMember.GetSessionCourseMemberForMarks(orgID, prgID, sessionID, CourseID).Rows)
                {
                    ATTSessionCourseMember member = new ATTSessionCourseMember();

                    member.OrgID          = int.Parse(grow["org_id"].ToString());
                    member.ProgramID      = int.Parse(grow["program_id"].ToString());
                    member.SessionID      = int.Parse(grow["session_id"].ToString());
                    member.CourseID       = int.Parse(grow["course_id"].ToString());
                    member.FacultyID      = int.Parse(grow["faculty_id"].ToString());;
                    member.PID            = int.Parse(grow["p_id"].ToString());
                    member.PersonName     = grow["person_name"].ToString();
                    member.FromDate       = grow["from_date"].ToString();
                    member.AssignmentDate = grow["assignment_date"].ToString();
                    member.ToDate         = grow["to_date"].ToString();
                    member.MarksObtained  = (grow["marksobtained"] == System.DBNull.Value) ? 0 : int.Parse(grow["marksobtained"].ToString());

                    member.Action = "M";

                    lstMem.Add(member);
                }

                return(lstMem);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    void LoadAssignedMember()
    {
        List <ATTSession>             lstSession = ((List <ATTProgram>)Session["DLPDS_Program_List"])[this.ddlProgram_Rqd.SelectedIndex].SessionLST;
        List <ATTSessionCourse>       lstSC      = lstSession[this.ddlSession_Rqd.SelectedIndex].LstSessionCourse;
        List <ATTSessionCourseMember> lstMem     = lstSC[this.ddlCourse_Rqd.SelectedIndex].LstSessionCourseMember;

        ATTSessionCourseMember member = new ATTSessionCourseMember();

        foreach (GridViewRow grow in this.grdFacultymember.Rows)
        {
            member.OrgID     = int.Parse(grow.Cells[1].Text);
            member.FacultyID = int.Parse(grow.Cells[2].Text);
            member.PID       = int.Parse(grow.Cells[4].Text);
            member.FromDate  = grow.Cells[6].Text;

            bool assigned;
            assigned = lstMem.Exists
                       (
                delegate(ATTSessionCourseMember mem)
            {
                return(mem.OrgID == member.OrgID &&
                       mem.FacultyID == member.FacultyID &&
                       mem.PID == member.PID &&
                       mem.FromDate == member.FromDate);
            }
                       );

            ((CheckBox)grow.FindControl("chkSelect")).Checked = assigned;
            if (assigned == true)
            {
                grow.Cells[10].Text = "Y";
            }
            else
            {
                grow.Cells[10].Text = "N";
            }
        }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (this.ddlProgram_Rqd.SelectedIndex <= 0)
        {
            this.lblStatus.Text        = "Save status";
            this.lblStatusMessage.Text = "Please select program from list.";
            this.ddlProgram_Rqd.Focus();
            this.programmaticModalPopup.Show();
            return;
        }

        if (this.ddlProgram_Rqd.SelectedIndex <= 0)
        {
            this.lblStatus.Text        = "Save status";
            this.lblStatusMessage.Text = "Please select session from list.";
            this.ddlSession_Rqd.Focus();
            this.programmaticModalPopup.Show();
            return;
        }

        if (this.ddlProgram_Rqd.SelectedIndex <= 0)
        {
            this.lblStatus.Text        = "Save status";
            this.lblStatusMessage.Text = "Please select course from list.";
            this.ddlSession_Rqd.Focus();
            this.programmaticModalPopup.Show(); return;
        }

        List <ATTProgram>       programLst       = (List <ATTProgram>)Session["DLPDS_Program_List"];
        List <ATTSession>       sessionLst       = programLst[this.ddlProgram_Rqd.SelectedIndex].SessionLST;
        List <ATTSessionCourse> sessionCourseLst = sessionLst[this.ddlSession_Rqd.SelectedIndex].LstSessionCourse;

        ATTSessionCourse SC = new ATTSessionCourse();

        List <CourseMaterialControls> CMCList = new List <CourseMaterialControls>();

        CMCList.Add(new CourseMaterialControls(this.fup1, this.chk1, this.lnkFile1));
        CMCList.Add(new CourseMaterialControls(this.fup2, this.chk2, this.lnkFile2));
        CMCList.Add(new CourseMaterialControls(this.fup3, this.chk3, this.lnkFile3));
        CMCList.Add(new CourseMaterialControls(this.fup4, this.chk4, this.lnkFile4));
        CMCList.Add(new CourseMaterialControls(this.fup5, this.chk5, this.lnkFile5));

        foreach (CourseMaterialControls cmc in CMCList)
        {
            if (cmc.FileLink.Text == "Filename" && cmc.FileUploader.HasFile == true)
            {
                SC.LstSessionCourseMaterial.Add
                (
                    new ATTSessionCourseMaterial
                    (
                        int.Parse(Session["OrgID"].ToString()),
                        int.Parse(this.ddlProgram_Rqd.SelectedValue),
                        int.Parse(this.ddlSession_Rqd.SelectedValue),
                        int.Parse(this.ddlCourse_Rqd.SelectedValue),
                        0,
                        cmc.FileUploader.FileName,
                        null,
                        "A",
                        cmc.FileUploader
                    )
                );
            }
            else if (cmc.FileLink.Text != "Filename" && cmc.Checkbox.Checked == true)
            {
                SC.LstSessionCourseMaterial.Add
                (
                    new ATTSessionCourseMaterial
                    (
                        int.Parse(Session["OrgID"].ToString()),
                        int.Parse(this.ddlProgram_Rqd.SelectedValue),
                        int.Parse(this.ddlSession_Rqd.SelectedValue),
                        int.Parse(this.ddlCourse_Rqd.SelectedValue),
                        int.Parse(cmc.FileLink.CommandArgument),
                        cmc.FileLink.Text,
                        null,
                        "D",
                        cmc.FileUploader
                    )
                );
            }
            else if (cmc.FileLink.Text != "Filename" && cmc.FileUploader.HasFile == false)
            {
                SC.LstSessionCourseMaterial.Add
                (
                    new ATTSessionCourseMaterial
                    (
                        int.Parse(Session["OrgID"].ToString()),
                        int.Parse(this.ddlProgram_Rqd.SelectedValue),
                        int.Parse(this.ddlSession_Rqd.SelectedValue),
                        int.Parse(this.ddlCourse_Rqd.SelectedValue),
                        int.Parse(cmc.FileLink.CommandArgument),
                        cmc.FileLink.Text,
                        null,
                        "N",
                        cmc.FileUploader
                    )
                );
            }
        }

        #region "Commented code of Course material items"
        //List<FileUpload> lstFup = new List<FileUpload>();

        //if (this.fup1.HasFile == true)
        //    lstFup.Add(this.fup1);
        //if (this.fup2.HasFile == true)
        //    lstFup.Add(this.fup2);
        //if (this.fup3.HasFile == true)
        //    lstFup.Add(this.fup3);
        //if (this.fup4.HasFile == true)
        //    lstFup.Add(this.fup4);
        //if (this.fup5.HasFile == true)
        //    lstFup.Add(this.fup5);

        //foreach (FileUpload fup in lstFup)
        //{
        //    SC.LstSessionCourseMaterial.Add
        //    (
        //        new ATTSessionCourseMaterial
        //        (
        //            1,
        //            int.Parse(this.ddlProgram_Rqd.SelectedValue),
        //            int.Parse(this.ddlSession_Rqd.SelectedValue),
        //            int.Parse(this.ddlCourse_Rqd.SelectedValue),
        //            0,
        //            fup.FileName,
        //            null,
        //            "A"
        //        )
        //    );
        //}
        #endregion

        bool assigned;

        foreach (GridViewRow grow in this.grdFacultymember.Rows)
        {
            CheckBox chk = ((CheckBox)grow.FindControl("chkSelect"));

            if (grow.Cells[10].Text == "Y")
            {
                assigned = true;
            }
            else
            {
                assigned = false;
            }

            #region "comment"
            //assigned = sessionCourseLst[this.ddlCourse_Rqd.SelectedIndex].LstSessionCourseMember.Exists
            //                        (
            //                            delegate(ATTSessionCourseMember mem)
            //                            {
            //                                return mem.OrgID == int.Parse(grow.Cells[1].Text) &&
            //                                    //mem.ProgramID == int.Parse(this.ddlProgram_Rqd.SelectedValue) &&
            //                                    //mem.SessionID == int.Parse(this.ddlSession_Rqd.SelectedValue) &&
            //                                    //mem.CourseID == int.Parse(this.ddlCourse_Rqd.SelectedValue) &&
            //                                    mem.FacultyID == int.Parse(grow.Cells[2].Text) &&
            //                                    mem.PID == int.Parse(grow.Cells[4].Text) &&
            //                                    mem.FromDate == grow.Cells[6].Text;
            //                                    //mem.AssignmentDate == grow.Cells[7].Text;
            //                            }
            //                        );
            #endregion

            if (chk.Checked == true)
            {
                ATTSessionCourseMember member = new ATTSessionCourseMember();
                member.OrgID          = int.Parse(grow.Cells[1].Text);
                member.ProgramID      = int.Parse(this.ddlProgram_Rqd.SelectedValue);
                member.SessionID      = int.Parse(this.ddlSession_Rqd.SelectedValue);
                member.CourseID       = int.Parse(this.ddlCourse_Rqd.SelectedValue);
                member.FacultyID      = int.Parse(grow.Cells[2].Text);
                member.PID            = int.Parse(grow.Cells[4].Text);;
                member.FromDate       = grow.Cells[6].Text;
                member.AssignmentDate = grow.Cells[6].Text;
                member.ToDate         = grow.Cells[7].Text;

                #region "delegate exists() commented"
                //assigned = lstSC.Exists
                //                    (
                //                        delegate(ATTSessionCourseMember mem)
                //                        {
                //                            return mem.OrgID == member.OrgID &&
                //                                mem.ProgramID == member.ProgramID &&
                //                                mem.SessionID == member.SessionID &&
                //                                mem.CourseID == member.CourseID &&
                //                                mem.FacultyID == member.FacultyID &&
                //                                mem.PID == member.PID &&
                //                                mem.FromDate == member.FromDate &&
                //                                mem.AssignmentDate == member.AssignmentDate;
                //                        }
                //                    );
                #endregion

                if (assigned == true)
                {
                    member.Action = "N";
                }
                else
                {
                    member.Action = "A";
                }

                SC.LstSessionCourseMember.Add(member);
            }
            else
            {
                if (assigned == true)
                {
                    ATTSessionCourseMember member = new ATTSessionCourseMember();
                    member.OrgID          = int.Parse(grow.Cells[1].Text);
                    member.ProgramID      = int.Parse(this.ddlProgram_Rqd.SelectedValue);
                    member.SessionID      = int.Parse(this.ddlSession_Rqd.SelectedValue);
                    member.CourseID       = int.Parse(this.ddlCourse_Rqd.SelectedValue);
                    member.FacultyID      = int.Parse(grow.Cells[2].Text);
                    member.PID            = int.Parse(grow.Cells[4].Text);;
                    member.FromDate       = grow.Cells[6].Text;
                    member.AssignmentDate = grow.Cells[6].Text;
                    member.ToDate         = grow.Cells[7].Text;
                    member.Action         = "D";

                    SC.LstSessionCourseMember.Add(member);
                }
            }
        }

        #region "Commented part"
        //DataTable tbl = (DataTable)Session["DLPDS_FileTable"];

        //foreach (DataRow row in tbl.Rows)
        //{
        //    object raw = row["MaterialByte"];
        //    SC.LstSessionCourseMaterial.Add
        //    (
        //        new ATTSessionCourseMaterial
        //        (
        //            int.Parse(row["OrgID"].ToString()),
        //            int.Parse(row["ProgramID"].ToString()),
        //            int.Parse(row["SessionID"].ToString()),
        //            int.Parse(row["CourseID"].ToString()),
        //            int.Parse(row["MaterialID"].ToString()),
        //            row["MaterialName"].ToString(),
        //            (byte[])row["MaterialByte"],
        //            null,
        //            row["Action"].ToString()
        //        )
        //    );
        //}
        #endregion

        try
        {
            foreach (ATTSessionCourseMaterial mat in SC.LstSessionCourseMaterial)
            {
                if (mat.Action == "A")
                {
                    ((FileUpload)mat.FileUploader).SaveAs(Server.MapPath("~") + "\\MODULES\\DLPDS\\COURSEMATERIAL\\" + mat.MaterialName);
                }
            }

            BLLSessionCourse.AddSessionCourseMaterialNMember(SC);

            foreach (ATTSessionCourseMaterial mat in SC.LstSessionCourseMaterial)
            {
                if (mat.Action == "D")
                {
                    if (System.IO.File.Exists(Server.MapPath("~") + "\\MODULES\\DLPDS\\COURSEMATERIAL\\" + mat.MaterialName) == true)
                    {
                        System.IO.File.Delete(Server.MapPath("~") + "\\MODULES\\DLPDS\\COURSEMATERIAL\\" + mat.MaterialName);
                    }
                }
            }
            SC.LstSessionCourseMaterial.RemoveAll
            (
                delegate(ATTSessionCourseMaterial m)
            {
                return(m.Action == "D");
            }
            );

            sessionCourseLst[this.ddlCourse_Rqd.SelectedIndex].LstSessionCourseMaterial = SC.LstSessionCourseMaterial;

            SC.LstSessionCourseMember.RemoveAll
            (
                delegate(ATTSessionCourseMember m)
            {
                return(m.Action == "D");
            }
            );
            sessionCourseLst[this.ddlCourse_Rqd.SelectedIndex].LstSessionCourseMember = SC.LstSessionCourseMember;

            this.ClearME();

            this.lblStatus.Text        = "Save status";
            this.lblStatusMessage.Text = "Course material and member has been saved.";

            this.ddlProgram_Rqd.SelectedIndex = 0;
            this.ddlSession_Rqd.SelectedIndex = 0;
            this.ddlCourse_Rqd.SelectedIndex  = 0;

            this.programmaticModalPopup.Show();
        }
        catch (Exception ex)
        {
            foreach (ATTSessionCourseMaterial mat in SC.LstSessionCourseMaterial)
            {
                if (mat.Action == "D")
                {
                    if (System.IO.File.Exists(Server.MapPath("~") + "\\MODULES\\DLPDS\\COURSEMATERIAL\\" + mat.MaterialName) == true)
                    {
                        System.IO.File.Delete(Server.MapPath("~") + "\\MODULES\\DLPDS\\COURSEMATERIAL\\" + mat.MaterialName);
                    }
                }
            }

            this.lblStatus.Text        = "Save status";
            this.lblStatusMessage.Text = ex.Message;
            this.programmaticModalPopup.Show();
        }
        finally
        {
            //Session["DLPDS_SessionCourse"] = new ATTSessionCourse();
        }
    }