public CombinedListingPresenter(ICombinedListingView view, ICollectionListingModel collectionListingModel, IBeatmapListingModel beatmapListingModel, IWebCollectionProvider webCollectionProvider) { _view = view; _beatmapsView = _view.beatmapListingView; _collectionsView = _view.CollectionListingView; BeatmapListingModel = beatmapListingModel; _webCollectionProvider = webCollectionProvider; new BeatmapListingPresenter(_beatmapsView, BeatmapListingModel); new CollectionListingPresenter(_collectionsView, collectionListingModel); _collectionsView.SelectedCollectionChanged += CollectionsViewOnSelectedCollectionChanged; _collectionsView.SelectedCollectionsChanged += CollectionsViewOnSelectedCollectionsChanged; }
public CombinedListingPresenter(ICombinedListingView view, ICollectionListingModel collectionListingModel, IBeatmapListingModel beatmapListingModel, IWebCollectionProvider webCollectionProvider, IUserDialogs userDialogs) { _view = view; _beatmapsView = _view.beatmapListingView; _collectionsView = _view.CollectionListingView; _collectionListingModel = collectionListingModel; BeatmapListingModel = beatmapListingModel; _webCollectionProvider = webCollectionProvider; _userDialogs = userDialogs; new BeatmapListingPresenter(_beatmapsView, BeatmapListingModel); new CollectionListingPresenter(_collectionsView, collectionListingModel, userDialogs); BeatmapListingModel.SelectedBeatmapsChanged += BeatmapListingModelOnSelectedBeatmapsChanged; _collectionsView.SelectedCollectionChanged += CollectionsViewOnSelectedCollectionChanged; _collectionsView.SelectedCollectionsChanged += CollectionsViewOnSelectedCollectionsChanged; }
/// <summary> /// Fetches this collection data from internet /// </summary> /// <param name="provider"></param> /// <returns></returns> public async Task Load(IWebCollectionProvider provider) { if (Loading || Loaded || !provider.CanFetch()) { return; } Loading = true; var collection = await provider.GetCollection(OnlineId); foreach (var b in collection.AllBeatmaps()) { AddBeatmap(b); } Loaded = true; Loading = false; }
public MainFormPresenter(IMainFormView view, IMainFormModel mainFormModel, IInfoTextModel infoTextModel, IWebCollectionProvider webCollectionProvider) { _view = view; _mainFormModel = mainFormModel; //Combined listing (Collections+Beatmaps) BeatmapListingModel = new BeatmapListingModel(null); BeatmapListingModel.BeatmapsDropped += BeatmapListing_BeatmapsDropped; BeatmapListingModel.SelectedBeatmapChanged += BeatmapListingViewOnSelectedBeatmapChanged; CollectionListingModel = new CollectionListingModel(Initalizer.LoadedCollections, _mainFormModel.GetCollectionEditor()); CollectionListingModel.CollectionEditing += CollectionListing_CollectionEditing; CollectionListingModel.SelectedCollectionsChanged += CollectionListing_SelectedCollectionsChanged; new CombinedListingPresenter(_view.CombinedListingView, CollectionListingModel, BeatmapListingModel, webCollectionProvider, mainFormModel.GetUserDialogs()); //Beatmap preview stuff (images, beatmap info like ar,cs,stars...) _combinedBeatmapPreviewModel = new CombinedBeatmapPreviewModel(); var presenter = new CombinedBeatmapPreviewPresenter(_view.CombinedBeatmapPreviewView, _combinedBeatmapPreviewModel); presenter.MusicControlModel.NextMapRequest += (s, a) => { _view.CombinedListingView.beatmapListingView.SelectNextOrFirst(); }; _collectionTextModel = new CollectionTextModel(); new CollectionTextPresenter(_view.CollectionTextView, _collectionTextModel); //General information (Collections loaded, update check etc.) InfoTextModel = infoTextModel; new InfoTextPresenter(_view.InfoTextView, InfoTextModel); }
public async Task <IEnumerable <WebCollection> > Save(IWebCollectionProvider provider) { return(await provider.SaveCollection(this)); }