public virtual async Task <int> GetImportCount(StableContent content, CancellationToken cancellationToken) { var stableStorage = GetCurrentStableStorage(); if (stableStorage == null) { return(0); } cancellationToken.ThrowIfCancellationRequested(); switch (content) { case StableContent.Beatmaps: return(await new LegacyBeatmapImporter(beatmaps).GetAvailableCount(stableStorage)); case StableContent.Skins: return(await new LegacySkinImporter(skins).GetAvailableCount(stableStorage)); case StableContent.Collections: return(await collections.GetAvailableCount(stableStorage)); case StableContent.Scores: return(await new LegacyScoreImporter(scores).GetAvailableCount(stableStorage)); default: throw new ArgumentException($"Only one {nameof(StableContent)} flag should be specified."); } }
public async Task ImportFromStableAsync(StableContent content) { var stableStorage = await getStableStorage().ConfigureAwait(false); var importTasks = new List <Task>(); Task beatmapImportTask = Task.CompletedTask; if (content.HasFlagFast(StableContent.Beatmaps)) { importTasks.Add(beatmapImportTask = beatmaps.ImportFromStableAsync(stableStorage)); } if (content.HasFlagFast(StableContent.Skins)) { importTasks.Add(skins.ImportFromStableAsync(stableStorage)); } if (content.HasFlagFast(StableContent.Collections)) { importTasks.Add(beatmapImportTask.ContinueWith(_ => collections.ImportFromStableAsync(stableStorage), TaskContinuationOptions.OnlyOnRanToCompletion)); } if (content.HasFlagFast(StableContent.Scores)) { importTasks.Add(beatmapImportTask.ContinueWith(_ => scores.ImportFromStableAsync(stableStorage), TaskContinuationOptions.OnlyOnRanToCompletion)); } await Task.WhenAll(importTasks.ToArray()).ConfigureAwait(false); }
private void runImport() { toggleInteraction(false); progressText.FadeIn(1000, Easing.OutQuint); StableContent importableContent = 0; foreach (var c in contentCheckboxes.Where(c => c.Current.Value)) { importableContent |= c.StableContent; } legacyImportManager.ImportFromStableAsync(importableContent, false).ContinueWith(t => Schedule(() => { progressText.FadeOut(500, Easing.OutQuint); if (t.IsCompletedSuccessfully) { importButton.Complete(); } else { toggleInteraction(true); importButton.Abort(); } })); }
public ImportCheckbox(LocalisableString title, StableContent stableContent) { this.title = title; StableContent = stableContent; Current.Default = true; Current.Value = true; LabelText = title; }
public async Task ImportFromStableAsync(StableContent content, bool interactiveLocateIfNotFound = true) { var stableStorage = GetCurrentStableStorage(); if (stableStorage == null) { if (!interactiveLocateIfNotFound) { return; } var taskCompletionSource = new TaskCompletionSource <string>(TaskCreationOptions.RunContinuationsAsynchronously); Schedule(() => dialogOverlay.Push(new StableDirectoryLocationDialog(taskCompletionSource))); string stablePath = await taskCompletionSource.Task.ConfigureAwait(false); UpdateStorage(stablePath); stableStorage = GetCurrentStableStorage(); } var importTasks = new List <Task>(); Task beatmapImportTask = Task.CompletedTask; if (content.HasFlagFast(StableContent.Beatmaps)) { importTasks.Add(beatmapImportTask = new LegacyBeatmapImporter(beatmaps).ImportFromStableAsync(stableStorage)); } if (content.HasFlagFast(StableContent.Skins)) { importTasks.Add(new LegacySkinImporter(skins).ImportFromStableAsync(stableStorage)); } if (content.HasFlagFast(StableContent.Collections)) { importTasks.Add(beatmapImportTask.ContinueWith(_ => collections.ImportFromStableAsync(stableStorage), TaskContinuationOptions.OnlyOnRanToCompletion)); } if (content.HasFlagFast(StableContent.Scores)) { importTasks.Add(beatmapImportTask.ContinueWith(_ => new LegacyScoreImporter(scores).ImportFromStableAsync(stableStorage), TaskContinuationOptions.OnlyOnRanToCompletion)); } await Task.WhenAll(importTasks.ToArray()).ConfigureAwait(false); }