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); } }
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; } } }
public void Update(ThreadMemberJsonModel model) { CurrentMember = new TransientThreadMember(Client, model); }