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(); }
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 { } }
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; }