public void TryAddNotification(Kbtter4Notification nt) { Query.ClearVariables(); Query.SetVariable("Notification", nt); if (Query.Execute().AsBoolean()) Notifications.Insert(0, nt); if (Notifications.Count > Setting.Timelines.HomeNotificationTimelineMax) Notifications.RemoveAt(Notifications.Count - 1); }
public NotificationViewModel(Kbtter4Notification nt, MainWindowViewModel mw) { var ins = Kbtter.Instance; switch (nt.Kind) { case Kbtter4NotificationKind.Favorited: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("ツイートが{0}さんのお気に入りに登録されました", SourceUser.Name); IconKind = Kbtter4NotificationIconKind.Favorited; Description = nt.SourceEvent.TargetStatus.Text; break; case Kbtter4NotificationKind.Unfavorited: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("ツイートが{0}さんのお気に入りから削除されました", SourceUser.Name); IconKind = Kbtter4NotificationIconKind.Unfavorited; Description = nt.SourceEvent.TargetStatus.Text; break; case Kbtter4NotificationKind.Followed: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("{0}さんにフォローされました", SourceUser.Name); IconKind = Kbtter4NotificationIconKind.Followed; Description = nt.SourceEvent.Source.Description; break; case Kbtter4NotificationKind.Unfollowed: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("{0}さんにリムーブされました", SourceUser.Name); IconKind = Kbtter4NotificationIconKind.Unfollowed; Description = nt.SourceEvent.Source.Description; break; case Kbtter4NotificationKind.Retweeted: SourceUser = new UserViewModel(nt.SourceStatus.Status.User, mw); if (nt.SourceStatus.Status.Text.Contains(ins.AuthenticatedUser.ScreenName) && nt.SourceStatus.Status.RetweetedStatus.User.Id != ins.AuthenticatedUser.Id) { Message = string.Format("リツイートが{0}さんにリツイートされました", SourceUser.Name); } else { Message = string.Format("ツイートが{0}さんにリツイートされました", SourceUser.Name); } IconKind = Kbtter4NotificationIconKind.Retweeted; Description = nt.SourceStatus.Status.RetweetedStatus.Text; break; case Kbtter4NotificationKind.ListAdded: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("{0}さんのリスト {1} に登録されました", SourceUser.Name, nt.SourceEvent.TargetList.Name); IconKind = Kbtter4NotificationIconKind.ListAdded; Description = nt.SourceEvent.TargetList.Description; break; case Kbtter4NotificationKind.ListRemoved: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("{0}さんのリスト {1} から外されました", SourceUser.Name, nt.SourceEvent.TargetList.Name); IconKind = Kbtter4NotificationIconKind.ListRemoved; Description = nt.SourceEvent.TargetList.Description; break; case Kbtter4NotificationKind.Blocked: SourceUser = new UserViewModel(nt.SourceEvent.Source, mw); Message = string.Format("{0}さんにブロックされました", SourceUser.Name); IconKind = Kbtter4NotificationIconKind.Blocked; Description = nt.SourceEvent.Source.Description; break; } }