internal override void Update(NotificationData data)
        {
            base.Update(data);

            //新しい通知を追加し、キープされた通知を再配置する
            var newDatas = ((SocialNotificationData)data).LogItems;
            var oldItemInfo = _actionLogs;
            var updatedDatas = (from nwItm in newDatas
                                join oldItm in oldItemInfo on nwItm.RawData equals oldItm.RawData into nwOldPair
                                from kpdItm in nwOldPair.DefaultIfEmpty()
                                select new { NewItemData = nwItm, OldItemInfo = kpdItm }).ToArray();
            foreach (var item in updatedDatas.Select((obj, idx) => new { Index = idx, Result = obj }))
                if (item.Result.OldItemInfo == null)
                    _actionLogs.Insert(item.Index, new NotificationItemInfo(item.Result.NewItemData, Client));
                else
                {
                    var oldIdx = 0;
                    if ((oldIdx = _actionLogs.IndexOf(item.Result.OldItemInfo)) >= 0 && item.Index != oldIdx)
                        _actionLogs.Move(oldIdx, item.Index);
                }
            //古い通知を削除
            for (var i = updatedDatas.Length; i < _actionLogs.Count; i++)
                _actionLogs.RemoveAt(i);

            if (Actor.Id != _actionLogs.First().Actor.Id)
                Actor = Client.People.InternalGetAndUpdateProfile(((SocialNotificationData)data).Actor);
        }
 internal virtual void Update(NotificationData data)
 {
     _data = data;
     OnUpdated(new EventArgs());
 }
 public Task MarkAsReadAsync(NotificationData target, IPlatformClient client)
 { return Task.Delay(100); }
 public NotificationInfo(NotificationData data, NotificationInfoContainer container, PlatformClient client)
     : base(client)
 {
     _data = data;
     _container = container;
 }