Exemplo n.º 1
0
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            //services
            SimpleIoc.Default.Register <IPodcastService, PodcastService>();
            SimpleIoc.Default.Register <IFileDownloadService, FileDownloadService>();
            SimpleIoc.Default.Register <IFeedParaseService, XmlFeedParserService>();
            SimpleIoc.Default.Register <IMessageDialogService, MessageDialogService>();
            SimpleIoc.Default.Register <IBackgroundMediaPlayerMediator, BackgroundMediaPlayerMediator>();
            SimpleIoc.Default.Register <ILocalStorageService <Podcast> >(() =>
            {
                return(new LocalPodcastService("podcasts.json"));
            });
            SimpleIoc.Default.Register <IPlayService>(() =>
            {
                return(new PlayService(SimpleIoc.Default.GetInstance <IBackgroundMediaPlayerMediator>()));
            });

            //navigation service
            SimpleIoc.Default.Register <INavigationService>(() =>
            {
                var navigationService = new AppShellNavigationService();
                //TODO: add more pages
                navigationService.Configure(nameof(PodcastsViewModel), typeof(PodcastsPage));
                navigationService.Configure(nameof(PodcastDetailsViewModel), typeof(PodcastDetailsPage));
                return(navigationService);
            });

            //view models
            SimpleIoc.Default.Register <NowPlayingViewModel>(true);
            SimpleIoc.Default.Register <PodcastsViewModel>();
            SimpleIoc.Default.Register <PodcastDetailsViewModel>();
            SimpleIoc.Default.Register <EpisodesViewModel>();
        }
Exemplo n.º 2
0
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            //services
            SimpleIoc.Default.Register <IPodcastService, PodcastService>();
            SimpleIoc.Default.Register <IFileDownloadService, FileDownloadService>();
            SimpleIoc.Default.Register <IFeedParaseService, XmlFeedParserService>();
            SimpleIoc.Default.Register <IMessageDialogService, MessageDialogService>();
            SimpleIoc.Default.Register <IPodcastStore <Podcast> >(() => new SQLitePodcastService());
            SimpleIoc.Default.Register <IDatabaseMigrator>(() => new SQLitePodcastService());
            SimpleIoc.Default.Register <IPlayService, PlayService>();
            SimpleIoc.Default.Register <ISearchService, ItunesSearchService>();

            //navigation service
            SimpleIoc.Default.Register <INavigationService>(() =>
            {
                var navigationService = new AppShellNavigationService();
                //TODO: add more pages
                navigationService.Configure(nameof(PodcastsViewModel), typeof(PodcastsPage));
                navigationService.Configure(nameof(PodcastDetailsViewModel), typeof(PodcastDetailsPage));
                navigationService.Configure(nameof(EpisodesViewModel), typeof(EpisodesPage));
                navigationService.Configure(nameof(NowPlayingViewModel), typeof(NowPlayingPage));
                navigationService.Configure(nameof(SearchViewModel), typeof(SearchPage));
                return(navigationService);
            });

            //view models
            SimpleIoc.Default.Register <NowPlayingViewModel>(true);
            SimpleIoc.Default.Register <PodcastsViewModel>();
            SimpleIoc.Default.Register <PodcastDetailsViewModel>();
            SimpleIoc.Default.Register <EpisodesViewModel>();
            SimpleIoc.Default.Register <SearchViewModel>();
        }