Merge pull request #2245 from peppy/better-import-notice

Make import notifications fail when any imports fail
This commit is contained in:
Dean Herbert 2018-03-22 15:11:33 +09:00 committed by GitHub
commit 1a86a057bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -80,7 +80,6 @@ namespace osu.Game.Database
var notification = new ProgressNotification var notification = new ProgressNotification
{ {
Text = "Import is initialising...", Text = "Import is initialising...",
CompletionText = "Import successful!",
Progress = 0, Progress = 0,
State = ProgressNotificationState.Active, State = ProgressNotificationState.Active,
}; };
@ -89,7 +88,8 @@ namespace osu.Game.Database
List<TModel> imported = new List<TModel>(); List<TModel> imported = new List<TModel>();
int i = 0; int current = 0;
int errors = 0;
foreach (string path in paths) foreach (string path in paths)
{ {
if (notification.State == ProgressNotificationState.Cancelled) if (notification.State == ProgressNotificationState.Cancelled)
@ -98,11 +98,11 @@ namespace osu.Game.Database
try try
{ {
notification.Text = $"Importing ({i} of {paths.Length})\n{Path.GetFileName(path)}"; notification.Text = $"Importing ({++current} of {paths.Length})\n{Path.GetFileName(path)}";
using (ArchiveReader reader = getReaderFrom(path)) using (ArchiveReader reader = getReaderFrom(path))
imported.Add(Import(reader)); imported.Add(Import(reader));
notification.Progress = (float)++i / paths.Length; notification.Progress = (float)current / paths.Length;
// We may or may not want to delete the file depending on where it is stored. // We may or may not want to delete the file depending on where it is stored.
// e.g. reconstructing/repairing database with items from default storage. // e.g. reconstructing/repairing database with items from default storage.
@ -122,9 +122,11 @@ namespace osu.Game.Database
{ {
e = e.InnerException ?? e; e = e.InnerException ?? e;
Logger.Error(e, $@"Could not import ({Path.GetFileName(path)})"); Logger.Error(e, $@"Could not import ({Path.GetFileName(path)})");
errors++;
} }
} }
notification.Text = errors > 0 ? $"Import complete with {errors} errors" : "Import successful!";
notification.State = ProgressNotificationState.Completed; notification.State = ProgressNotificationState.Completed;
} }
@ -219,9 +221,11 @@ namespace osu.Game.Database
// user requested abort // user requested abort
return; return;
notification.Text = $"Deleting ({i} of {items.Count})"; notification.Text = $"Deleting ({++i} of {items.Count})";
notification.Progress = (float)++i / items.Count;
Delete(b); Delete(b);
notification.Progress = (float)i / items.Count;
} }
} }
@ -255,9 +259,11 @@ namespace osu.Game.Database
// user requested abort // user requested abort
return; return;
notification.Text = $"Restoring ({i} of {items.Count})"; notification.Text = $"Restoring ({++i} of {items.Count})";
notification.Progress = (float)++i / items.Count;
Undelete(item); Undelete(item);
notification.Progress = (float)i / items.Count;
} }
} }