Exemplo n.º 1
0
        public CollectionViewModel(
            INotificationCenter notification,
            IUserDatabase userDatabase,
            ICardDatabase cardDatabase,
            IApplicationSettings applicationSettings)
        {
            _notification        = notification;
            _userDatabase        = userDatabase;
            _cardDatabase        = cardDatabase;
            _applicationSettings = applicationSettings;
            Collections          = _userDatabase
                                   .GetAllCollections()
                                   .Select(c => new SingleCollectionViewModell(notification, _userDatabase, _cardDatabase, c));

            ISingleCollectionViewModel loadedCollection = null;

            Task.Factory.StartNew(() =>
            {
                var currentCollectionName = _applicationSettings.GetCurrentCollection();
                var found        = Collections.FirstOrDefault(c => c.CollectionName == currentCollectionName);
                loadedCollection = LoadCollection(found);
            }).ContinueWith((task) =>
            {
                SelectedCollection = loadedCollection;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Exemplo n.º 2
0
        public ISingleCollectionViewModel LoadCollection(ISingleCollectionViewModel collection)
        {
            try
            {
                if (collection == null)
                {
                    return(null);
                }

                _notification.FireNotification("", "Loading collection " + collection.CollectionName);

                var loading = CollectionLoading;
                if (loading != null)
                {
                    loading(this, EventArgs.Empty);
                }

                // TODO: Load the cards here and merge from card database
            }
            catch (Exception)
            {
            }
            finally
            {
                var loading = CollectionLoaded;
                if (loading != null)
                {
                    loading(this, EventArgs.Empty);
                }

                _notification.FireNotification("", "Finished loading collection " + collection.CollectionName);
            }

            return(collection);
        }