public void Toggle(CardMemberViewModel model) { if (model.Toggle()) { // now attached _otherMembers.Remove(model); _members.Add(model); var evt = new CardMemberAdded { CardId = Id, MemberId = model.Id, AvatarHash = model.AvatarHash, FullName = model.FullName, Username = model.Username }; _eventAggregator.Publish(evt); } else { // now unattached _members.Remove(model); _otherMembers.Insert(0, model); var evt = new CardMemberRemoved { CardId = Id, MemberId = model.Id }; _eventAggregator.Publish(evt); } _eventAggregator.Publish(new MemberAggregationsUpdated { AssignedMemberCount = _members.Count }); }
public void Handle(CardMemberAdded message) { FindCardViewModel(message.CardId) .IfHasValueThenDo(card => { var member = new Member { Id = message.MemberId, AvatarHash = message.AvatarHash, FullName = message.FullName, Username = message.Username }; card.Members.Add(new MemberViewModel(member)); }); }