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>(); }
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>(); }