コード例 #1
0
        public void toggleBlockMember(int mid, bool block)
        {
            try
            {
                BlockedMembers blockedMembers = new BlockedMembers();
                blockedMembers.Where.BlockID.Value = mid;
                blockedMembers.Where.MemberID.Value = BLL.Member.CurrentMemberID;
                if (blockedMembers.Query.Load())
                {
                    if (!block)
                    {
                        blockedMembers.DeleteAll();
                        blockedMembers.Save();
                    }
                }
                else
                {
                    if (block)
                    {
                        blockedMembers.AddNew();
                        blockedMembers.MemberID = BLL.Member.CurrentMemberID;
                        blockedMembers.BlockID = mid;
                        blockedMembers.CreateDate = DateTime.Now;
                        blockedMembers.Save();

                        BLL.Member bllMember = new BLL.Member();
                        bllMember.LoadByPrimaryKeyWithTypeSpec(mid);
                        var member = bllMember.DefaultView.Table.AsEnumerable().Select(m =>
                        new
                        {
                            MemberID = m[Member.ColumnNames.MemberID],
                            Name = m[Member.ColumnNames.Name],
                            TypeSpecID = m["MemberTypeSpecID"],
                            ProfilePic = (m[Member.ColumnNames.ProfilePic] == DBNull.Value ? defaultImg : m[Member.ColumnNames.ProfilePic]),
                            IsOnline = m[Member.ColumnNames.IsOnLine],
                            StatusMsg = m[Member.ColumnNames.StatusMsg],
                            Status = Helper.EnumUtil.ParseEnum<Helper.Enums.MemberStatus>(Helper.TypeConverter.ToInt32(m[Member.ColumnNames.Status])).ToString().ToLower(),
                        }
                        ).FirstOrDefault();
                        SetContentResult(member);
                    }
                }

                IHubContext _Rcontext = GlobalHost.ConnectionManager.GetHubContext<ChatRoomHub>();
                var blocked = ChatRoomHub.ConnectedUsers.FirstOrDefault(u => u.MemberID == mid);
                if (blocked != null)
                {
                    _Rcontext.Clients.Client(blocked.ConnectionId).toggleBlockedFromMember(new { MemberID = BLL.Member.CurrentMemberID }, block);
                }
            }
            catch { }
        }