Example #1
0
        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();
                }
            });
        }