コード例 #1
0
        public override void Update(ChannelJsonModel model)
        {
            base.Update(model);

            if (model.Member.HasValue)
            {
                CurrentMember = new TransientThreadMember(Client, model.Member.Value);
            }

            if (model.MessageCount.HasValue)
            {
                MessageCount = model.MessageCount.Value;
            }

            if (model.MemberCount.HasValue)
            {
                MemberCount = model.MemberCount.Value;
            }

            if (model.ThreadMetadata.HasValue)
            {
                var metadataModel = model.ThreadMetadata.Value;
                IsArchived = metadataModel.Archived;
                AutomaticArchiveDuration = TimeSpan.FromMinutes(metadataModel.AutoArchiveDuration);
                ArchiveStateChangedAt    = metadataModel.ArchiveTimestamp;
                IsLocked         = metadataModel.Locked.GetValueOrDefault();
                AllowsInvitation = metadataModel.Invitable.GetValueOrDefault(true);
            }
        }
コード例 #2
0
        public void Update(ThreadMembersUpdateJsonModel model)
        {
            if (model.AddedMembers.HasValue)
            {
                var memberModel = Array.Find(model.AddedMembers.Value, x => x.UserId.HasValue && x.UserId.Value == Client.CurrentUser.Id);
                if (memberModel != null)
                {
                    CurrentMember = new TransientThreadMember(Client, memberModel);
                    return;
                }
            }

            if (model.RemovedMemberIds.HasValue)
            {
                if (Array.Exists(model.RemovedMemberIds.Value, x => x == Client.CurrentUser.Id))
                {
                    CurrentMember = null;
                }
            }
        }
コード例 #3
0
 public void Update(ThreadMemberJsonModel model)
 {
     CurrentMember = new TransientThreadMember(Client, model);
 }