示例#1
0
        public void updateRoomMemberSettings(int roomid, int memberid, bool canWrite, bool canAccessMic, bool canAccessCam, string banDays)
        {
            try
            {
                RoomMemberBanning banning = new RoomMemberBanning();
                if (!banning.LoadByPrimaryKey(roomid, memberid))
                {
                    banning.AddNew();
                    banning.RoomID = roomid;
                    banning.MemberID = memberid;
                }
                if (String.IsNullOrEmpty(banDays))
                {
                    banning.MarkAsDeleted();
                    try
                    {
                        if (banning.RowState() != System.Data.DataRowState.Added)
                        {
                            //deleted ban from member
                            BLL.Member member = new Member();
                            member.LoadByPrimaryKey(memberid);
                            BLL.MemberLog log = new BLL.MemberLog();
                            log.AddNew(BLL.Member.CurrentMemberID, new BLL.Log.UnBanRoomMember() { MemberName = member.Name }, member.MemberID, roomid);
                        }
                    }
                    catch { }
                }
                else
                {
                    int days = Convert.ToInt32(banDays);
                    if (days == 0)
                    {
                        banning.SetColumnNull(RoomMemberBanning.ColumnNames.EndDate);
                    }
                    else
                    {
                        banning.EndDate = DateTime.Now.AddDays(days);
                    }

                    try
                    {
                        BLL.Member member = new Member();
                        member.LoadByPrimaryKey(memberid);
                        BLL.MemberLog log = new BLL.MemberLog();
                        BLL.Log.BanRoomMember infoLog = new BLL.Log.BanRoomMember() { MemberName = member.Name };
                        if (days > 0)
                        {
                            infoLog.BanningDays = days;
                            infoLog.EndDate = banning.EndDate;
                        }
                        log.AddNew(BLL.Member.CurrentMemberID, infoLog, member.MemberID, roomid);
                    }
                    catch { }
                }
                banning.Save();
                //room member settings
                RoomMember rm = new RoomMember();
                if (!rm.LoadByPrimaryKey(memberid, roomid))
                {
                    rm.AddNew();
                    rm.RoomID = roomid;
                    rm.MemberID = memberid;
                }
                rm.CanAccessCam = canAccessCam;
                rm.CanAccessMic = canAccessMic;
                rm.CanWrite = canWrite;
                if (!String.IsNullOrEmpty(banDays))
                    rm.InRoom = false;
                rm.Save();
                //update clients
                Clients.Group(roomid.ToString()).updateRoomMemberSettings(roomid, memberid, canWrite, canAccessMic, canAccessCam, banDays);

            }
            catch { }
        }
示例#2
0
 public void removeBanningFromRoomMembers(int roomid, int[] members)
 {
     try
     {
         RoomMemberBanning rm = new RoomMemberBanning();
         rm.Delete(roomid, members);
     }
     catch (Exception ex)
     {
     }
 }
示例#3
0
        public void BanRoomMember(int memberID, int roomID, int type, int adminID)
        {
            RoomMemberBanning ban = new RoomMemberBanning();
            if (!ban.LoadByPrimaryKey(roomID, memberID))
            {
                ban.AddNew();
                ban.RoomID = roomID;
                ban.MemberID = memberID;
            }

            ban.CreatedByMemberID = adminID;
            ban.CreateDate = DateTime.Now;
            ban.StartDate = DateTime.Now;
            switch (type)
            {
                case (int)Helper.Enums.BanningType.Day:
                    ban.EndDate = DateTime.Now.AddDays(1);
                    break;
                case (int)Helper.Enums.BanningType.Month:
                    ban.EndDate = DateTime.Now.AddMonths(1);
                    break;
                case (int)Helper.Enums.BanningType.Week:
                    ban.EndDate = DateTime.Now.AddDays(7);
                    break;
                case (int)Helper.Enums.BanningType.Permanent:
                    ban.SetColumnNull(RoomMemberBanning.ColumnNames.EndDate);
                    break;
            }

            ban.Save();
        }
示例#4
0
 public void RemoveBanningFromRoomMembers(int roomID, int[] membersID)
 {
     RoomMemberBanning ban = new RoomMemberBanning();
     ban.Delete(roomID, membersID);
 }
示例#5
0
        private static bool IsValideRoom(int id, bool isTemp, out Room room, out string message)
        {
            message = "";
            room = new Room();
            if (!isTemp)
            {
                RoomMemberBanning ban = new RoomMemberBanning();
                if (ban.LoadByPrimaryKey(id, BLL.Member.CurrentMemberID))
                {
                    if (ban.IsColumnNull(RoomMemberBanning.ColumnNames.EndDate) || ban.EndDate > DateTime.Now)
                    {
                        message = "تم طردك من هذه الغرفة ";
                        if (ban.IsColumnNull(RoomMemberBanning.ColumnNames.EndDate))
                            message = message + "نهائيا ولن تتمكن من الدخول مرة أخرى";
                        else
                            message = message + "لن تتمكن من دحول هذه الغرفة قبل هذا الوفت: " + Helper.Date.ToDateTimeString(ban.EndDate);

                        return false;
                    }
                }
            }
            //Room Info
            if (!room.LoadByPrimaryKey(id))
            {
                message = "غرفة غير متاحة";
                return false;
            }
            if (room.RowStatusID != (int)Helper.Enums.RowStatus.Enabled)
            {
                message = "هذه الغرفة مغلقة حاليا";
                return false;
            }

            if (!isTemp)
            {
                if (room.CreatedBy != BLL.Member.CurrentMember.MemberID)
                {
                    //check member type bot
                    string acceptedType;
                    if (!ValidateMemberLoginTypeBot(id, out acceptedType))
                    {
                        message = "عفوا هذه الغرفة تقبل الأعضاء من الفئات (" + acceptedType + ") فقط";
                        return false;
                    }
                }

                if (room.IsColumnNull("CreatedBy"))
                {
                    message = "حدث خطأ. الغرفة غير متاحة الأن";
                    return false;
                }

                RoomMember owner = new RoomMember();
                if (!room.IsColumnNull("CreatedBy"))
                {
                    if (!owner.LoadByPrimaryKey(room.CreatedBy, id))
                    {
                        message = "حدث خطأ. الغرفة غير متاحة الأن";
                        return false;
                    }
                }
            }
            return true;
        }