protected override async Task ListUpdatedHandler(MessageBase <IList <Domain.Todo> > messageBase) { await base.ListUpdatedHandler(messageBase); Cde.Wait(1000); var userPresentation = Mvx.IoCProvider.Resolve <ISinglePresentation <int, Observable.LoggedInUser> >(); if (!userPresentation.SelectedObservable.IsTransient()) { var dispatcher = Mvx.IoCProvider.Resolve <IMvxMainThreadAsyncDispatcher>(); dispatcher.ExecuteOnMainThreadAsync(() => { CurrentUserTodoObservables.Clear(); }); var todosFromUser = Observables.Where(x => x.UserId.Equals(userPresentation.SelectedObservable.Id)).Take(5); foreach (var todo in todosFromUser) { dispatcher.ExecuteOnMainThreadAsync(() => { CurrentUserTodoObservables.Add(todo); }); } } }
public DashboardViewModel() { var userPresentation = Mvx.IoCProvider.Resolve <ISinglePresentation <int, Observable.LoggedInUser> >(); CurrentUserObservable = userPresentation.SelectedObservable; var todoPresentation = Mvx.IoCProvider.Resolve <ITodo>(); CurrentUserTodoObservables = todoPresentation.CurrentUserTodoObservables; Task.Factory.StartNew(async() => { await Task.Delay(5000); if (!CurrentUserTodoObservables.Any()) { await Mvx.IoCProvider.Resolve <IListBusiness <int, Domain.Todo> >().PublishFromStorage(); } }); }