protected override async Task OnLoad(AsyncLoadContext context) { var userInfo = await Context.Twitter.Users.ShowUser(UserId, false); Title = userInfo.ScreenNameResponse; await base.OnLoad(context); }
public async Task Load(AsyncLoadContext context) { Task.Run(() => Parser.StartStreaming()).Forget(); await OnLoad(context).ContinueWith(t => { IsLoading = false; RaisePropertyChanged(nameof(IsLoading)); }); }
protected override async Task OnLoad(AsyncLoadContext context) { var statuses = await Context.Twitter.Statuses.List(Definition.TargetAccounts); var list = new List <StatusViewModel>(); foreach (var s in statuses) { list.Add(await CreateViewModel(s, context)); } await AddItems(list); }
protected override async Task OnLoad(AsyncLoadContext context) { var statuses = await Context.Twitter.Favorites.List(Context.UserId); var list = new List <StatusViewModel>(); foreach (var s in statuses) { list.Add(await CreateViewModel(s, context)); } await AddItems(list); }
protected async Task <StatusViewModel> CreateViewModel(Status s, AsyncLoadContext context = AsyncLoadContext.Default) { var vm = new StatusViewModel(s, Context, Configuration, ViewServiceRepository); if (context == AsyncLoadContext.Default) { await vm.LoadDataAsync(); } else { Task.Run(async() => await vm.LoadDataAsync()).Forget(); } return(vm); }
protected virtual async Task OnLoad(AsyncLoadContext context) { var list = new List <StatusViewModel>(); var cachedStatuses = await Cache.GetStatusesForColumn(Definition.Id, Configuration.General.TweetFetchCount); foreach (var s in cachedStatuses.Where(s => !Muter.IsMuted(s))) { list.Add(await CreateViewModel(s, context)); } await AddItems(list); var filterList = new List <Expression <Func <Status, bool> > >(3) { CountExpression, StatusFilterExpression }; if (SinceId != 0) { filterList.Add(SinceIdFilterExpression); } var statuses = await Context.Twitter.Statuses.Filter(filterList.ToArray()); await Cache.MapStatusesToColumn(statuses, Definition.Id); list.Clear(); foreach (var s in statuses.Where(s => !Muter.IsMuted(s))) { list.Add(await CreateViewModel(s, context)); } await AddItems(list); }
protected override async Task OnLoad(AsyncLoadContext context) { Dictionary <ulong, DirectMessage> userMap = new Dictionary <ulong, DirectMessage>(); var cachedMessages = await Cache.GetMessages(); foreach (var c in cachedMessages) { var userId = c.Sender == Context.UserId ? c.Recipient : c.Sender; var msg = JsonConvert.DeserializeObject <DirectMessage>(c.Data); DirectMessage existing; if (userMap.TryGetValue(userId, out existing)) { if (existing.CreatedAt < msg.CreatedAt) { userMap[userId] = msg; } } else { userMap.Add(userId, msg); } } var messages = await Context.Twitter.Messages.IncomingMessages(200, MaxId); foreach (var msg in messages) { var userId = msg.SenderID; DirectMessage existing; if (userMap.TryGetValue(userId, out existing)) { if (existing.CreatedAt < msg.CreatedAt) { userMap[userId] = msg; } } else { userMap.Add(userId, msg); } } var toCache = new List <MessageCacheEntry>(); toCache.AddRange(messages.Select(m => new MessageCacheEntry(m))); messages = await Context.Twitter.Messages.OutgoingMessages(200, MaxId); foreach (var msg in messages) { var userId = msg.RecipientID; DirectMessage existing; if (userMap.TryGetValue(userId, out existing)) { if (existing.CreatedAt < msg.CreatedAt) { userMap[userId] = msg; } } else { userMap.Add(userId, msg); } } toCache.AddRange(messages.Select(m => new MessageCacheEntry(m))); await Cache.AddMessages(toCache); var list = new List <MessageViewModel>(); foreach (var s in userMap.Values.OrderByDescending(m => m.CreatedAt)) { var vm = await CreateViewModel(s); vm.WasRead = true; list.Add(vm); } await AddItems(list); }
protected override async Task OnLoad(AsyncLoadContext context) { await SetJobs(); }