public LanguagesLoader(Location location, PersistenceService persistenceService,
     Func<Priority, INetworkService> networkServiceFactory, Priority priority = Priority.Background)
 {
     _location = location;
     _persistenceService = persistenceService;
     _networkService = networkServiceFactory(priority);
 }
        public MainPageViewModel(IAnalyticsService analytics, PagesViewModel pagesViewModel, EventPagesViewModel eventPagesViewModel, NavigationViewModel navigationViewModel, TabViewModel tabViewModel,
            IDialogProvider dialogProvider, INavigator navigator,
            Func<IEnumerable<PageViewModel>, SearchViewModel> pageSearchViewModelFactory, PersistenceService persistence)
        : base (analytics) {
            Title = "Information";

            TabViewModel = tabViewModel;
            TabViewModel.PagesViewModel = pagesViewModel;
            TabViewModel.EventPagesViewModel = eventPagesViewModel;

            NavigationViewModel = navigationViewModel;
            NavigationViewModel.PropertyChanged += delegate(object sender, PropertyChangedEventArgs args)
            {
                if (args.PropertyName.Equals("SelectedPage"))
                {
                    //_pagesViewModel.SelectedPage = NavigationViewModel.SelectedPage;
                    //TODO current workaround
                    if (NavigationViewModel.SelectedPage != null && NavigationViewModel.SelectedPage.ShowPageCommand.CanExecute(null))
                    {
                        NavigationViewModel.SelectedPage.ShowPageCommand.Execute(null);
                        NavigationViewModel.IsPresented = false; // close master page, this should ideally be done within the NavigationViewModel itself (as in the Disclaimer button, the navigation closes itself as well) - Note for when this workaround is properly solved
                    }
                }
            };

            _pagesViewModel = pagesViewModel;
            _pagesViewModel.PropertyChanged += delegate(object sender, PropertyChangedEventArgs args)
            {
                if (args.PropertyName.Equals("LoadedPages"))
                {
                    var pages = _pagesViewModel.LoadedPages;
                    var key = Models.Page.GenerateKey("0", _location, _language);
                    NavigationViewModel.Pages =
                        new ObservableCollection<PageViewModel>(pages.Where(x => x.Page.ParentId == key)
                            .OrderBy(x => x.Page.Order));
                }
            };

            _dialogProvider = dialogProvider;
            _navigator = navigator;
            _pageSearchViewModelFactory = pageSearchViewModelFactory;
            _persistence = persistence;
        }
Ejemplo n.º 3
0
 private PersistenceService CreatePersistenceService()
 {
     var persistence = new PersistenceService(new SQLitePlatformIOS());
     persistence.Init();
     return persistence;
 }
 public LocationsLoader(PersistenceService persistenceService,
     Func<Priority, INetworkService> networkServiceFactory, Priority priority = Priority.Background)
 {
     _persistenceService = persistenceService;
     _networkService = networkServiceFactory(priority);
 }