protected void lstCommittee_SelectedIndexChanged(object sender, EventArgs e)
    {
        List <ATTGroup>       lstGrp    = ((List <ATTGroup>)Session["GroupLst"]);
        List <ATTGroupMember> lstGrpMem = lstGrp[this.lstCommittee.SelectedIndex].LstGroupMember;

        List <ATTGroupMember> tmplstGrpMem = (List <ATTGroupMember>)Session["TmpGrpMember"];

        tmplstGrpMem.Clear();
        foreach (ATTGroupMember mem in lstGrpMem)
        {
            ATTGroupMember tmp = new ATTGroupMember();

            tmp.OrgID    = mem.OrgID;
            tmp.GroupID  = mem.GroupID;
            tmp.EmpID    = mem.EmpID;
            tmp.EmpName  = mem.EmpName;
            tmp.FromDate = mem.FromDate;
            tmp.ToDate   = mem.ToDate;
            tmp.MemberPostion.PositionID   = mem.MemberPostion.PositionID;
            tmp.MemberPostion.PositionName = mem.MemberPostion.PositionName;
            tmp.Action      = mem.Action;
            tmp.OFromDate   = mem.FromDate;
            tmp.OToDate     = mem.ToDate;
            tmp.OPositionID = mem.PositionID;

            tmplstGrpMem.Add(tmp);
        }

        this.grdGrpMember.DataSource = tmplstGrpMem;
        this.grdGrpMember.DataBind();
    }
        public static List <ATTGroupMember> GetGroupMemberList(int?groupID)
        {
            try
            {
                List <ATTGroupMember> lstGroupMember = new List <ATTGroupMember>();

                foreach (DataRow row in DLLGroupMember.GetGroupMemberListTable(groupID).Rows)
                {
                    ATTGroupMember objGroupMember = new ATTGroupMember(int.Parse(row["ORG_ID"].ToString()),
                                                                       int.Parse(row["GROUP_ID"].ToString()),
                                                                       int.Parse(row["EMP_ID"].ToString()),
                                                                       row["FROM_DATE"].ToString(),
                                                                       row["TO_DATE"].ToString(),
                                                                       (row["POSITION_ID"] == DBNull.Value?0:int.Parse(row["POSITION_ID"].ToString())),
                                                                       row["FIRST_NAME"].ToString() +
                                                                       (row["MID_NAME"].ToString() == "" ? "" : " " + row["MID_NAME"].ToString()) +
                                                                       (row["SUR_NAME"].ToString() == "" ? "" : " " + row["SUR_NAME"].ToString())
                                                                       );

                    objGroupMember.Action      = "N";
                    objGroupMember.OFromDate   = objGroupMember.FromDate;
                    objGroupMember.OToDate     = objGroupMember.ToDate;
                    objGroupMember.OPositionID = objGroupMember.PositionID;

                    objGroupMember.MemberPostion.PositionName = row["Position_name"].ToString();
                    lstGroupMember.Add(objGroupMember);
                }

                return(lstGroupMember);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
    protected void btnAddMember_Click(object sender, EventArgs e)
    {
        if (this.ddlOrg_Rqd.SelectedIndex <= 0)
        {
            this.lblStatusMessage.Text = "Please select any organization from list";
            this.programmaticModalPopup.Show();
            return;
        }

        if (this.lstCommittee.SelectedIndex < 0)
        {
            this.lblStatusMessage.Text = "Please select any group from list";
            this.programmaticModalPopup.Show();
            return;
        }

        List <ATTGroupMember> lst = (List <ATTGroupMember>)Session["TmpGrpMember"];
        string namelist           = "";

        foreach (GridViewRow row in this.EmployeeSearch.GrdMemberEmployee.Rows)
        {
            CheckBox box = ((CheckBox)row.FindControl("chkSelect"));
            if (box.Checked == true)
            {
                ATTGroupMember member = new ATTGroupMember();

                member.OrgID   = int.Parse(this.ddlOrg_Rqd.SelectedValue);
                member.GroupID = int.Parse(this.lstCommittee.SelectedValue);
                member.EmpID   = double.Parse(row.Cells[0].Text);
                //member.SymbolNo = (row.Cells[2].Text == "&nbsp;") ? "" : row.Cells[2].Text;
                member.EmpName = row.Cells[2].Text;
                member.MemberPostion.PositionID = 0;
                //member.OFromDate = ".";
                //member.ToDate = ".";
                //member.PositionID = 0;
                member.Action = "A";

                bool exist = lst.Exists
                             (
                    delegate(ATTGroupMember c)
                {
                    return
                    (c.OrgID == member.OrgID &&
                     c.GroupID == member.GroupID &&
                     c.EmpID == member.EmpID);
                }
                             );

                if (exist == false)
                {
                    lst.Add(member);
                }
                else
                {
                    namelist = namelist + "----  " + member.EmpName + "<br>";
                }


                box.Checked = false;
            }
        }

        this.grdGrpMember.DataSource = lst;
        this.grdGrpMember.DataBind();

        this.SetGridColor();

        if (namelist != string.Empty)
        {
            this.lblStatusMessage.Text = "Following person::<br><br>" + namelist + "<br> has been already added for this Committee.<br>So these person cannot be added at this time.";
            this.programmaticModalPopup.Show();
        }
    }
        public static List <ATTMeetingParticipant> SetMeetingParticipant(DataTable tblMP, int orgID, int meetingID)
        {
            try
            {
                List <ATTMeetingParticipant> lstMeetingParticipant = new List <ATTMeetingParticipant>();
                bool      flag          = false;
                bool      flagChkMember = false;
                ArrayList arrVal        = new ArrayList();
                ArrayList arrOtherVal   = new ArrayList();

                arrVal = GetPariticipantList(orgID, meetingID);

                foreach (DataRow row in tblMP.Rows)
                {
                    if (orgID == int.Parse(row["Org_id"].ToString()) &&
                        meetingID == int.Parse(row["meeting_id"].ToString())
                        )
                    {
                        ATTMeetingParticipant objMP = new ATTMeetingParticipant();

                        int?   participantOrgID     = null;
                        int?   groupID              = null;
                        int?   meetingMempositionID = null;
                        int?   positionID           = null;
                        int?   empID         = null;
                        int?   participantID = null;
                        string isGrpParticipant;
                        string positionName = "";



                        if (row["group_id"].ToString() == "")
                        {
                            groupID = null;
                        }
                        else
                        {
                            groupID = int.Parse(row["group_id"].ToString());
                        }

                        if (row["emp_id"].ToString() == "")
                        {
                            empID = null;
                        }
                        else
                        {
                            empID = int.Parse(row["emp_id"].ToString());
                        }

                        if (row["PARTICIPANT_ID"].ToString() == "")
                        {
                            participantID = null;
                        }
                        else
                        {
                            participantID = int.Parse(row["PARTICIPANT_ID"].ToString());
                        }

                        isGrpParticipant = (row["IS_GRP_PARTICIPANT"].ToString()).Trim();



                        if (groupID != null)
                        {
                            if (isGrpParticipant == "O")
                            {
                                if (empID == participantID)
                                {
                                    flag = true;
                                }
                                else
                                {
                                    int l = 0;
                                    if (arrVal.Count > 0)
                                    {
                                        for (int k = 0; k < arrVal.Count; k++)
                                        {
                                            if (empID == int.Parse(arrVal[k].ToString()))
                                            {
                                                l = l + 1;
                                            }
                                        }
                                    }


                                    if (l > 0)
                                    {
                                        flagChkMember = false;
                                    }
                                    else
                                    {
                                        flagChkMember = true;
                                    }

                                    arrVal.Add(empID.ToString());
                                }
                            }
                            else if (isGrpParticipant == "OT")
                            {
                                int m = 0;
                                if (arrOtherVal.Count > 0)
                                {
                                    for (int n = 0; n < arrOtherVal.Count; n++)
                                    {
                                        if (participantID == int.Parse(arrOtherVal[n].ToString()))
                                        {
                                            m = m + 1;
                                        }
                                    }
                                }

                                if (m > 0)
                                {
                                    flag = false;
                                }
                                else
                                {
                                    flag = true;
                                }

                                arrOtherVal.Add(participantID.ToString());
                            }
                        }
                        else
                        {
                            flag = true;
                        }


                        if (flag)
                        {
                            if (row["part_org_ID"].ToString() == "")
                            {
                                participantOrgID = null;
                            }
                            else
                            {
                                participantOrgID = int.Parse(row["part_org_ID"].ToString());
                            }

                            if (row["MEETING_MEMBER_POSITIONID"].ToString() == "")
                            {
                                meetingMempositionID = 0;
                            }
                            else
                            {
                                meetingMempositionID = int.Parse(row["MEETING_MEMBER_POSITIONID"].ToString());
                            }


                            if (row["MEMBER_POSITIONID"].ToString() == "")
                            {
                                positionID = 0;
                            }
                            else
                            {
                                positionID   = int.Parse(row["MEMBER_POSITIONID"].ToString());
                                positionName = row["MEMBER_POSITION_NAME"].ToString();
                            }


                            if (row["des_id"].ToString() != "")
                            {
                                positionID   = int.Parse(row["des_id"].ToString());
                                positionName = row["des_name"].ToString();
                            }


                            lstMeetingParticipant.Add(new ATTMeetingParticipant(
                                                          int.Parse(row["Org_id"].ToString()),
                                                          int.Parse(row["meeting_id"].ToString()),
                                                          int.Parse(participantID.ToString()),
                                                          row["FIRST_NAME"].ToString() +
                                                          (row["MID_NAME"].ToString() == "" ? "" : " " + row["MID_NAME"].ToString()) +
                                                          (row["SUR_NAME"].ToString() == "" ? "" : " " + row["SUR_NAME"].ToString()),
                                                          participantOrgID,
                                                          groupID,
                                                          row["NOTE"].ToString(),
                                                          row["IS_GRP_PARTICIPANT"].ToString(),
                                                          meetingMempositionID,
                                                          positionID,
                                                          positionName,
                                                          "N",
                                                          row["IS_PRESENT"].ToString()
                                                          ));

                            flag = false;
                        }

                        if (flagChkMember)
                        {
                            ATTGroupMember objGroupMem = lstGroupMember.Find(delegate(ATTGroupMember objGM)
                            {
                                return(objGM.GroupID == groupID && objGM.EmpID == empID && (objGM.ToDate == ""));
                            }

                                                                             );

                            if (objGroupMem != null)
                            {
                                lstMeetingParticipant.Add(new ATTMeetingParticipant(
                                                              int.Parse(objGroupMem.OrgID.ToString()),
                                                              meetingID,
                                                              int.Parse(objGroupMem.EmpID.ToString()),
                                                              objGroupMem.EmpName,
                                                              null,
                                                              objGroupMem.GroupID,
                                                              "",
                                                              "",
                                                              -1,
                                                              objGroupMem.PositionID,
                                                              objGroupMem.PositionName,
                                                              "",
                                                              ""
                                                              ));
                            }

                            flagChkMember = false;
                        }
                    }
                }

                return(lstMeetingParticipant);
            }
            catch (Exception ex)
            {
                throw(ex);
            }
        }
        public static List <ATTEvent> GetEventList(string dateString, ATTUserLogin login)
        {
            try
            {
                List <ATTEvent> lstEvents = new List <ATTEvent>();

                DataTable tblME = new DataTable();
                tblME = BLLMeeting.GetMeetingEventListTable(dateString, login);


                tblMA = new DataTable();
                tblMA = BLLMeetingAgenda.GetMeetingAgendaListTable(dateString, login);

                tblMP = new DataTable();
                tblMP = BLLMeetingParticipant.GetMeetingParticipantListTable(dateString, login);

                lstGroupMember = BLLGroupMember.GetGroupMemberList(null);

                ATTGroupMember objGM = lstGroupMember.Find(delegate(ATTGroupMember obj)
                {
                    return(obj.OrgID == login.OrgID && obj.EmpID == login.PID);
                }
                                                           );

                foreach (DataRow row in tblME.Rows)
                {
                    ATTEvent objEvent = new ATTEvent();

                    objEvent.Day = int.Parse(row["meeting_date"].ToString().Split('/')[2].ToString());

                    objEvent.OrgID   = int.Parse(row["Org_ID"].ToString());
                    objEvent.EventID = int.Parse(row["MEETING_ID"].ToString());

                    //int stop;

                    //stop = objEvent.EventID;

                    /*if (objEvent.EventID == 21)
                     *  stop = 0;
                     */
                    //CALLED_BY_P_ID

                    int?calledByID;

                    if (row["CALLED_BY_P_ID"].ToString() != "")
                    {
                        calledByID = int.Parse(row["CALLED_BY_P_ID"].ToString());
                    }
                    else
                    {
                        calledByID = null;
                    }

                    if (calledByID == null)
                    {
                        int    calleby  = int.Parse(row["called_by"].ToString());
                        string userName = row["ENTRY_BY"].ToString().Trim();

                        string entryBy = row["m_entry_by"].ToString().Trim();



                        if (login.UserName.Trim() == row["ENTRY_BY"].ToString().Trim() || login.UserName.Trim() == row["m_entry_by"].ToString().Trim())
                        {
                            if (row["meeting_subject"].ToString().Length > 15)
                            {
                                objEvent.Event = "<i><b>" + row["meeting_subject"].ToString().Substring(0, 15) + ".....</i></b>";
                            }
                            else
                            {
                                objEvent.Event = "<i><b>" + row["meeting_subject"].ToString() + "</i></b>";
                            }

                            objEvent.InOut = "IN";
                        }
                        else if (objGM != null)
                        {
                            if (objGM.GroupID == int.Parse(row["called_by"].ToString()))
                            {
                                if (row["meeting_subject"].ToString().Length > 15)
                                {
                                    objEvent.Event = "<i><b>" + row["meeting_subject"].ToString().Substring(0, 15) + ".....</i></b>";
                                }
                                else
                                {
                                    objEvent.Event = "<i><b>" + row["meeting_subject"].ToString() + "</i></b>";
                                }

                                objEvent.InOut = "IN";
                            }
                            else
                            {
                                if (row["meeting_subject"].ToString().Length > 15)
                                {
                                    objEvent.Event = "<b>" + row["meeting_subject"].ToString().Substring(0, 15) + ".....</b>";
                                }
                                else
                                {
                                    objEvent.Event = "<b>" + row["meeting_subject"].ToString() + "</b>";
                                }

                                objEvent.InOut = "OUT";
                            }
                        }
                        else
                        {
                            if (row["meeting_subject"].ToString().Length > 15)
                            {
                                objEvent.Event = "<b>" + row["meeting_subject"].ToString().Substring(0, 15) + ".....</b>";
                            }
                            else
                            {
                                objEvent.Event = "<b>" + row["meeting_subject"].ToString() + "</b>";
                            }

                            objEvent.InOut = "OUT";
                        }
                    }
                    else
                    {
                        if (calledByID == login.PID || login.UserName.Trim() == row["ENTRY_BY"].ToString().Trim() || login.UserName.Trim() == row["m_entry_by"].ToString().Trim())
                        {
                            if (row["meeting_subject"].ToString().Length > 15)
                            {
                                objEvent.Event = "<i>" + row["meeting_subject"].ToString().Substring(0, 15) + ".....</i>";
                            }
                            else
                            {
                                objEvent.Event = "<i>" + row["meeting_subject"].ToString() + "</i>";
                            }

                            objEvent.InOut = "IN";
                        }
                        else
                        {
                            if (row["meeting_subject"].ToString().Length > 15)
                            {
                                objEvent.Event = row["meeting_subject"].ToString().Substring(0, 15) + ".....";
                            }
                            else
                            {
                                objEvent.Event = row["meeting_subject"].ToString();
                            }

                            objEvent.InOut = "OUT";
                        }
                    }



                    objEvent.EventDetail = "(" + row["start_time"].ToString() + " - " + row["end_time"].ToString() + ") \n " + row["meeting_subject"].ToString();

                    objEvent.StatusColor = row["MSTATUS_COLOR"].ToString();

                    objEvent.LstMeeting = SetMeeting(row, dateString, login);

                    lstEvents.Add(objEvent);
                }

                return(lstEvents);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }