diff --git a/Language/JSON.cs b/Language/JSON.cs index a68a10e..9c4be15 100644 --- a/Language/JSON.cs +++ b/Language/JSON.cs @@ -14,25 +14,25 @@ public struct N2MT { - public Message message = new Message(); + public MSG message = new MSG(); public N2MT() { } - public struct Message + public struct MSG { - public Result result = new Result(); + public Data result = new Data(); - public Message() + public MSG() { } - public struct Result + public struct Data { public string translatedText = string.Empty; - public Result() + public Data() { } } diff --git a/Language/Language.cs b/Language/Language.cs index 234376d..98e41a5 100644 --- a/Language/Language.cs +++ b/Language/Language.cs @@ -113,7 +113,7 @@ else { Console.WriteLine($"+{targetPropertyName}"); - return await N2Mt(targetLanguage, defaultLanguageValue); + return await N2Mt(targetLanguage, defaultLanguageValue).ConfigureAwait(false); } } } @@ -212,7 +212,7 @@ else { Console.WriteLine($"+{defaultLanguage.Key}"); - targetLanguageStore[defaultLanguage.Key] = await N2Mt(targetLanguage, defaultLanguage.Value); + targetLanguageStore[defaultLanguage.Key] = await N2Mt(targetLanguage, defaultLanguage.Value).ConfigureAwait(false); } } @@ -270,14 +270,14 @@ File.WriteAllText(languageSystemFilePath, builder.ToString()); } -async Task N2Mt(string targetLanguage, string src) +async ValueTask N2Mt(string targetLanguage, string src) { var t = await wwwClient.SendAsync(new HttpRequestMessage(HttpMethod.Post, "https://openapi.naver.com/v1/papago/n2mt") { Content = new FormUrlEncodedContent(new[] { KeyValuePair.Create("source", "ko"), KeyValuePair.Create("target", targetLanguage), KeyValuePair.Create("text", src) }), Version = HttpVersion.Version20 - }); - var text = await t.Content.ReadAsStringAsync(); + }).ConfigureAwait(false); + var text = await t.Content.ReadAsStringAsync().ConfigureAwait(false); if (t.IsSuccessStatusCode) { return JsonSerializer.Deserialize(text, new JsonSerializerOptions @@ -287,7 +287,7 @@ } else { - await Console.Error.WriteLineAsync(t.StatusCode.ToString()); + await Console.Error.WriteLineAsync(t.StatusCode.ToString()).ConfigureAwait(false); return string.Empty; } } \ No newline at end of file diff --git a/Qwilight/AvatarWww.cs b/Qwilight/AvatarWww.cs index 7003001..e212ff4 100644 --- a/Qwilight/AvatarWww.cs +++ b/Qwilight/AvatarWww.cs @@ -27,7 +27,7 @@ _wantAvatarDrawing = false; SetAvatarDrawing(); - async void SetAvatarDrawing() => SetProperty(ref _avatarDrawing, (await AvatarDrawingSystem.Instance.GetAvatarDrawing(AvatarID)).DefaultDrawing, nameof(AvatarDrawing)); + async void SetAvatarDrawing() => SetProperty(ref _avatarDrawing, (await AvatarDrawingSystem.Instance.GetAvatarDrawing(AvatarID).ConfigureAwait(false)).DefaultDrawing, nameof(AvatarDrawing)); } return _avatarDrawing; } @@ -42,7 +42,7 @@ _wantAvatarTitle = false; SetAvatarTitle(); - async void SetAvatarTitle() => SetProperty(ref _avatarTitle, await AvatarTitleSystem.Instance.GetAvatarTitle(AvatarID, _allowNotAvatarTitle), nameof(AvatarTitleValue)); + async void SetAvatarTitle() => SetProperty(ref _avatarTitle, await AvatarTitleSystem.Instance.GetAvatarTitle(AvatarID, _allowNotAvatarTitle).ConfigureAwait(false), nameof(AvatarTitleValue)); } return _avatarTitle; } @@ -57,7 +57,7 @@ _wantAvatarEdge = false; SetAvatarEdge(); - async void SetAvatarEdge() => SetProperty(ref _avatarEdge, (await AvatarEdgeSystem.Instance.GetAvatarEdge(AvatarID)).DefaultDrawing, nameof(AvatarEdge)); + async void SetAvatarEdge() => SetProperty(ref _avatarEdge, (await AvatarEdgeSystem.Instance.GetAvatarEdge(AvatarID).ConfigureAwait(false)).DefaultDrawing, nameof(AvatarEdge)); } return _avatarEdge; } diff --git a/Qwilight/Compute/DefaultCompute.cs b/Qwilight/Compute/DefaultCompute.cs index cedef5c..7923a79 100644 --- a/Qwilight/Compute/DefaultCompute.cs +++ b/Qwilight/Compute/DefaultCompute.cs @@ -4517,11 +4517,11 @@ switch (!string.IsNullOrEmpty(eventNoteID) || NoteFile.IsBanned ? 0 : Configure.Instance.CommentViewTabPosition) { case 0: - netItems.AddRange(GetNetItemsImpl(await DB.Instance.GetCommentItems(NoteFiles[0], eventNoteID, NoteFiles.Length))); + netItems.AddRange(GetNetItemsImpl(await DB.Instance.GetCommentItems(NoteFiles[0], eventNoteID, NoteFiles.Length).ConfigureAwait(false))); break; case 1: case 2: - var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&avatarID={Configure.Instance.AvatarID}&target={Configure.Instance.UbuntuNetItemTarget}"); + var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&avatarID={Configure.Instance.AvatarID}&target={Configure.Instance.UbuntuNetItemTarget}").ConfigureAwait(false); if (twilightWwwComment.HasValue) { netItems.AddRange(GetNetItemsImpl(HandleTwilightNetItems(Utility.GetCommentItems(twilightWwwComment.Value.comments, NoteFile)))); @@ -4572,7 +4572,7 @@ var commentID = commentItem.CommentID; if (commentItem.IsTwilightComment) { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&commentID={commentID}"); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={NoteFile.GetNoteID512()}&commentID={commentID}").ConfigureAwait(false); if (s.Length > 0) { netItem.Comment = Comment.Parser.ParseFrom(s); diff --git a/Qwilight/NoteFile/BaseNoteFile.cs b/Qwilight/NoteFile/BaseNoteFile.cs index 223529a..81c2515 100644 --- a/Qwilight/NoteFile/BaseNoteFile.cs +++ b/Qwilight/NoteFile/BaseNoteFile.cs @@ -78,10 +78,10 @@ if (_wantNoteDrawing && !string.IsNullOrEmpty(NoteDrawingPath)) { _wantNoteDrawing = false; - var noteDrawingPath = Utility.GetAvailable(NoteDrawingPath, Utility.AvailableFlag.Drawing); - if (!string.IsNullOrEmpty(noteDrawingPath)) + Task.Run(() => { - Task.Run(() => + var noteDrawingPath = Utility.GetAvailable(NoteDrawingPath, Utility.AvailableFlag.Drawing); + if (!string.IsNullOrEmpty(noteDrawingPath)) { try { @@ -90,8 +90,8 @@ catch { } - }); - } + } + }); } return _noteDrawing ?? DrawingSystem.Instance.DefaultDrawing.DefaultDrawing; } @@ -104,10 +104,10 @@ if (_wantBannerDrawing && !string.IsNullOrEmpty(BannerDrawingPath)) { _wantBannerDrawing = false; - var bannerDrawingPath = Utility.GetAvailable(BannerDrawingPath, Utility.AvailableFlag.Drawing); - if (!string.IsNullOrEmpty(bannerDrawingPath)) + Task.Run(() => { - Task.Run(() => + var bannerDrawingPath = Utility.GetAvailable(BannerDrawingPath, Utility.AvailableFlag.Drawing); + if (!string.IsNullOrEmpty(bannerDrawingPath)) { try { @@ -116,8 +116,8 @@ catch { } - }); - } + } + }); } return _bannerDrawing; } diff --git a/Qwilight/Qwilight.csproj b/Qwilight/Qwilight.csproj index 025df17..d68a087 100644 --- a/Qwilight/Qwilight.csproj +++ b/Qwilight/Qwilight.csproj @@ -1,7 +1,7 @@  WinExe - net8.0-windows10.0.22621.0 + net7.0-windows10.0.22621.0 10.0.17763.0 True Debug;Release diff --git a/Qwilight/System/AvatarDrawingSystem.cs b/Qwilight/System/AvatarDrawingSystem.cs index eaa253f..6ccff23 100644 --- a/Qwilight/System/AvatarDrawingSystem.cs +++ b/Qwilight/System/AvatarDrawingSystem.cs @@ -49,7 +49,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync(); + await avatarCSX.WaitAsync().ConfigureAwait(false); if (!_avatarDrawings.TryGetValue(avatarID, out var avatarDrawing)) { if (string.IsNullOrEmpty(avatarID)) @@ -60,7 +60,7 @@ { try { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=0"); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=0").ConfigureAwait(false); avatarDrawing = new() { Drawing = DrawingSystem.Instance.Load(s, null), diff --git a/Qwilight/System/AvatarEdgeSystem.cs b/Qwilight/System/AvatarEdgeSystem.cs index ca09a65..799b504 100644 --- a/Qwilight/System/AvatarEdgeSystem.cs +++ b/Qwilight/System/AvatarEdgeSystem.cs @@ -49,7 +49,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync(); + await avatarCSX.WaitAsync().ConfigureAwait(false); if (!_avatarEdges.TryGetValue(avatarID, out var avatarEdge)) { if (string.IsNullOrEmpty(avatarID)) @@ -60,7 +60,7 @@ { try { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=2"); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?avatarID={WebUtility.UrlEncode(avatarID)}&drawingVariety=2").ConfigureAwait(false); avatarEdge = new() { Drawing = DrawingSystem.Instance.Load(s, null), diff --git a/Qwilight/System/AvatarTitleSystem.cs b/Qwilight/System/AvatarTitleSystem.cs index fddb693..8a372ff 100644 --- a/Qwilight/System/AvatarTitleSystem.cs +++ b/Qwilight/System/AvatarTitleSystem.cs @@ -33,7 +33,7 @@ var avatarCSX = _avatarCSXs.GetOrAdd(avatarID, GetCSX); try { - await avatarCSX.WaitAsync(); + await avatarCSX.WaitAsync().ConfigureAwait(false); if (!_avatarTitles.TryGetValue(avatarID, out var avatarTitle)) { if (string.IsNullOrEmpty(avatarID)) @@ -44,7 +44,7 @@ { try { - var twilightWwwTitle = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/title?avatarID={WebUtility.UrlEncode(avatarID)}&language={Configure.Instance.Language}"); + var twilightWwwTitle = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/title?avatarID={WebUtility.UrlEncode(avatarID)}&language={Configure.Instance.Language}").ConfigureAwait(false); avatarTitle = twilightWwwTitle.HasValue ? new AvatarTitle(twilightWwwTitle.Value.title, Utility.GetTitlePaint(twilightWwwTitle.Value.titleColor), Utility.GetTitleColor(twilightWwwTitle.Value.titleColor)) : new AvatarTitle(string.Empty, default, default); } catch diff --git a/Qwilight/System/DB.cs b/Qwilight/System/DB.cs index 6e9e6f5..beb990b 100644 --- a/Qwilight/System/DB.cs +++ b/Qwilight/System/DB.cs @@ -620,8 +620,8 @@ { dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); } - using var rows = await dbStatement.ExecuteReaderAsync(); - while (await rows.ReadAsync()) + using var rows = await dbStatement.ExecuteReaderAsync().ConfigureAwait(false); + while (await rows.ReadAsync().ConfigureAwait(false)) { var date = (DateTime)rows["Date"]; var sentMultiplier = (double)rows["Multiplier"]; @@ -716,7 +716,7 @@ dbStatement.Parameters.AddWithValue("level", wwwLevelComputingValue.LevelValue); dbStatement.Parameters.AddWithValue("levelText", wwwLevelComputingValue.LevelText); dbStatement.Parameters.AddWithValue("genre", wwwLevelComputingValue.Genre); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } } } @@ -808,7 +808,7 @@ VALUES(@noteID, @handled)", _db); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("handled", noteFile.HandledValue); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public (DateTime?, int) GetDate(BaseNoteFile noteFile, string eventNoteID) @@ -840,7 +840,7 @@ dbStatement.Parameters.AddWithValue("noteID", noteFile?.GetNoteID512()); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); dbStatement.Parameters.AddWithValue("date", date); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public int GetNotePosition(string entryPath) @@ -893,7 +893,7 @@ VALUES(@entryPath, @notePosition)", _db); dbStatement.Parameters.AddWithValue("entryPath", entryItem.EntryPath); dbStatement.Parameters.AddWithValue("notePosition", entryItem.NotePosition); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async void SetFavoriteEntry(BaseNoteFile noteFile) @@ -905,7 +905,7 @@ WHERE Note_ID = @noteID", _db)) { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } using (var dbStatement = new SQLiteCommand(@"REPLACE INTO note @@ -915,10 +915,10 @@ { dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("favoriteEntry", favoriteEntryItem.DefaultEntryPath); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } } - }); + }).ConfigureAwait(false); } public async Task SetEventNote(string eventNoteID, string eventNoteName, DateTime date, EventNoteVariety eventNoteVariety) @@ -929,7 +929,7 @@ dbStatement.Parameters.AddWithValue("eventNoteName", eventNoteName); dbStatement.Parameters.AddWithValue("date", date); dbStatement.Parameters.AddWithValue("eventNoteVariety", eventNoteVariety); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask WipeEventNote(string eventNoteID) @@ -938,7 +938,7 @@ FROM event_note WHERE Event_Note_ID = @eventNoteID", _db); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask ModifyEventNoteName(string eventNoteID, string eventNoteName) @@ -948,7 +948,7 @@ WHERE Event_Note_ID = @eventNoteID", _db); dbStatement.Parameters.AddWithValue("eventNoteName", eventNoteName); dbStatement.Parameters.AddWithValue("eventNoteID", eventNoteID); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async void SaveComment(DateTime date, BaseNoteFile noteFile, string eventNoteID, string comment, string avatar, double multiplier, double audioMultiplier, ModeComponent modeComponentValue, int stand, int band, bool isP, double point, bool isPaused, DefaultCompute.InputFlag inputFlags) @@ -1011,7 +1011,7 @@ dbStatement.Parameters.AddWithValue("noteID", noteFile?.GetNoteID512()); dbStatement.Parameters.AddWithValue("isPaused", isPaused); dbStatement.Parameters.AddWithValue("inputFlags", inputFlags); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async void SetWait(BaseNoteFile noteFile, double audioWait, double mediaWait, bool media) @@ -1023,7 +1023,7 @@ dbStatement.Parameters.AddWithValue("audioWait", audioWait); dbStatement.Parameters.AddWithValue("mediaWait", mediaWait); dbStatement.Parameters.AddWithValue("media", media); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask SetNoteFormat(BaseNoteFile noteFile, int format) @@ -1033,14 +1033,14 @@ VALUES(@noteID, @format)", _db); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); dbStatement.Parameters.AddWithValue("format", format); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask WipeFavoriteEntry() { using var dbStatement = new SQLiteCommand(@"DELETE FROM note", _db); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask WipeHandled(BaseNoteFile noteFile) @@ -1049,21 +1049,21 @@ FROM handle WHERE Note_ID = @noteID", _db); dbStatement.Parameters.AddWithValue("noteID", noteFile.GetNoteID512()); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask InitWait() { using var dbStatement = new SQLiteCommand(@"UPDATE wait SET Audio_Wait = NULL, Media_Wait = 0.0", _db); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask InitMedia() { using var dbStatement = new SQLiteCommand(@"UPDATE wait SET Media = NULL", _db); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask WipeComment(string comment) @@ -1072,27 +1072,27 @@ FROM comment WHERE Comment = @comment", _db); dbStatement.Parameters.AddWithValue("comment", comment); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } public async ValueTask WipeComment() { using var dbStatement = new SQLiteCommand(@"DELETE FROM comment", _db); - await dbStatement.ExecuteNonQueryAsync(); + await dbStatement.ExecuteNonQueryAsync().ConfigureAwait(false); } async ValueTask Ta(Action onHandle) { - using var t = await _db.BeginTransactionAsync(); + using var t = await _db.BeginTransactionAsync().ConfigureAwait(false); try { onHandle(); - await t.CommitAsync(); + await t.CommitAsync().ConfigureAwait(false); } catch { - await t.RollbackAsync(); + await t.RollbackAsync().ConfigureAwait(false); throw; } } diff --git a/Qwilight/System/DrawingSystem/DrawingSystem.cs b/Qwilight/System/DrawingSystem/DrawingSystem.cs index 7fd6cde..4ce3c0b 100644 --- a/Qwilight/System/DrawingSystem/DrawingSystem.cs +++ b/Qwilight/System/DrawingSystem/DrawingSystem.cs @@ -392,9 +392,9 @@ var handleUndoImpl = new Action(mainViewModel.HandleInitComment); var handleQuitMove0Impl = new Action(() => defaultComputer.NotifyCompute(-1)); var handleQuitMove1Impl = new Action(() => defaultComputer.NotifyCompute(1)); - var getAvatarDrawing = new Action(async avatarID => await AvatarDrawingSystem.Instance.GetAvatarDrawing(avatarID as string)); - var getAvatarTitle = new Action(async avatarID => await AvatarTitleSystem.Instance.GetAvatarTitle(avatarID as string)); - var getAvatarEdge = new Action(async avatarID => await AvatarEdgeSystem.Instance.GetAvatarEdge(avatarID as string)); + var getAvatarDrawing = new Action(async avatarID => await AvatarDrawingSystem.Instance.GetAvatarDrawing(avatarID as string).ConfigureAwait(false)); + var getAvatarTitle = new Action(async avatarID => await AvatarTitleSystem.Instance.GetAvatarTitle(avatarID as string).ConfigureAwait(false)); + var getAvatarEdge = new Action(async avatarID => await AvatarEdgeSystem.Instance.GetAvatarEdge(avatarID as string).ConfigureAwait(false)); var distanceMillisMax = double.MinValue; var frametime = 0.0; diff --git a/Qwilight/System/HandlingUISystem.cs b/Qwilight/System/HandlingUISystem.cs index c7d7ecd..65ad0a7 100644 --- a/Qwilight/System/HandlingUISystem.cs +++ b/Qwilight/System/HandlingUISystem.cs @@ -8,13 +8,13 @@ public Dispatcher UIHandler { get; set; } - public void Init(Action onUnhandledFault) + public void Init(Func onUnhandledFault) { UIHandler = Dispatcher.CurrentDispatcher; - UIHandler.UnhandledException += (sender, e) => + UIHandler.UnhandledException += async (sender, e) => { - onUnhandledFault(e.Exception); e.Handled = true; + await onUnhandledFault(e.Exception).ConfigureAwait(false); }; } diff --git a/Qwilight/System/LevelSystem.cs b/Qwilight/System/LevelSystem.cs index 2c037de..7c970d1 100644 --- a/Qwilight/System/LevelSystem.cs +++ b/Qwilight/System/LevelSystem.cs @@ -110,24 +110,24 @@ try { var o = new HtmlDocument(); - using var os = await TwilightSystem.Instance.GetWwwParallel(www); + using var os = await TwilightSystem.Instance.GetWwwParallel(www).ConfigureAwait(false); o.Load(os); using var s = await TwilightSystem.Instance.GetWwwParallel(WebUtility.HtmlDecode(ModifyDataValue(o.CreateNavigator().SelectSingleNode("/html/head/meta[@name='bmstable']/@content")?.ToString() ?? o.CreateNavigator().SelectSingleNode("/html/body/meta[@name='bmstable']/@content")?.ToString() - ?? o.CreateNavigator().SelectSingleNode("/html/head/body/meta[@name='bmstable']/@content")?.ToString()))); + ?? o.CreateNavigator().SelectSingleNode("/html/head/body/meta[@name='bmstable']/@content")?.ToString()))).ConfigureAwait(false); var levelTable = Utility.GetJSON(s); s.Position = 0; if (levelTable.HasValue) { var levelTableValue = levelTable.Value; - var savingLevelBundleItem = new NotifyItem + var savingBundleItem = new NotifyItem { Text = LanguageSystem.Instance.SavingLevelContents, Variety = NotifySystem.NotifyVariety.Levying, OnStop = isTotal => false }; - HandlingUISystem.Instance.HandleParallel(() => ViewModels.Instance.NotifyValue.NotifyItemCollection.Insert(0, savingLevelBundleItem)); - NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.NotSave, savingLevelBundleItem.Text); + HandlingUISystem.Instance.HandleParallel(() => ViewModels.Instance.NotifyValue.NotifyItemCollection.Insert(0, savingBundleItem)); + NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.NotSave, savingBundleItem.Text); var target = ModifyDataValue(levelTableValue.data_url); var levelTableFileName = levelTableValue.name; foreach (var targetFileName in Path.GetInvalidFileNameChars()) @@ -138,25 +138,25 @@ { wwwClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0"); using (var fs = File.Open(Path.Combine(EntryPath, $"{levelTableFileName}.json"), FileMode.Create)) - using (var ts = await wwwClient.GetAsync(target)) + using (var ts = await wwwClient.GetAsync(target).ConfigureAwait(false)) { - savingLevelBundleItem.QuitStatus = ts.Content.Headers.ContentLength ?? 0L; + savingBundleItem.QuitStatus = ts.Content.Headers.ContentLength ?? 0L; var length = 0; - while ((length = await (await ts.Content.ReadAsStreamAsync()).ReadAsync(data.AsMemory(0, data.Length))) > 0) + while ((length = await (await ts.Content.ReadAsStreamAsync().ConfigureAwait(false)).ReadAsync(data.AsMemory(0, data.Length)).ConfigureAwait(false)) > 0) { - await fs.WriteAsync(data.AsMemory(0, length)); - savingLevelBundleItem.LevyingStatus += length; - savingLevelBundleItem.NotifyBundleStatus(); + await fs.WriteAsync(data.AsMemory(0, length)).ConfigureAwait(false); + savingBundleItem.LevyingStatus += length; + savingBundleItem.NotifyBundleStatus(); } } } using (var fs = File.Open(Path.Combine(EntryPath, $"#{levelTableFileName}.json"), FileMode.Create)) { - await s.CopyToAsync(fs); + await s.CopyToAsync(fs).ConfigureAwait(false); } - savingLevelBundleItem.Variety = NotifySystem.NotifyVariety.Quit; - savingLevelBundleItem.Text = LanguageSystem.Instance.SavedLevelContents; - savingLevelBundleItem.OnStop = isTotal => true; + savingBundleItem.Variety = NotifySystem.NotifyVariety.Quit; + savingBundleItem.Text = LanguageSystem.Instance.SavedLevelContents; + savingBundleItem.OnStop = isTotal => true; NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.Info, NotifySystem.NotifyConfigure.NotSave, LanguageSystem.Instance.SavedLevelContents); Configure.Instance.LevelTargetMap[levelTableFileName] = www; LoadLevelFiles(); diff --git a/Qwilight/System/MIDISystem/MIDISystem.cs b/Qwilight/System/MIDISystem/MIDISystem.cs index aa16b0a..6c3ddab 100644 --- a/Qwilight/System/MIDISystem/MIDISystem.cs +++ b/Qwilight/System/MIDISystem/MIDISystem.cs @@ -133,9 +133,9 @@ } } - public async void GetMIDIs() + public async ValueTask GetMIDIs() { - var rawMIDIControllers = (await Task.WhenAll((await DeviceInformation.FindAllAsync(MidiInPort.GetDeviceSelector())).Select(async data => (data.Name, await MidiInPort.FromIdAsync(data.Id))))).Where(inputController => inputController.Item2 != null).ToArray(); + var rawMIDIControllers = (await Task.WhenAll((await DeviceInformation.FindAllAsync(MidiInPort.GetDeviceSelector())).Select(async data => (data.Name, await MidiInPort.FromIdAsync(data.Id)))).ConfigureAwait(false)).Where(inputController => inputController.Item2 != null).ToArray(); Utility.SetUICollection(_rawMIDIControllers, rawMIDIControllers.Select(rawMIDIController => rawMIDIController.Item2).ToArray(), rawMIDIController => { try @@ -160,14 +160,14 @@ OnPropertyChanged(nameof(MIDICountContents)); } - public void HandleSystem() + public async ValueTask HandleSystem() { - GetMIDIs(); + await GetMIDIs(); var w = DeviceInformation.CreateWatcher(MidiInPort.GetDeviceSelector()); - w.Added += (sender, args) => GetMIDIs(); - w.Removed += (sender, args) => GetMIDIs(); - w.Updated += (sender, args) => GetMIDIs(); - w.EnumerationCompleted += (sender, args) => GetMIDIs(); + w.Added += async (sender, args) => await GetMIDIs(); + w.Removed += async (sender, args) => await GetMIDIs(); + w.Updated += async (sender, args) => await GetMIDIs(); + w.EnumerationCompleted += async (sender, args) => await GetMIDIs(); w.Start(); } } diff --git a/Qwilight/System/MediaInputSystem.cs b/Qwilight/System/MediaInputSystem.cs index d651177..92a7901 100644 --- a/Qwilight/System/MediaInputSystem.cs +++ b/Qwilight/System/MediaInputSystem.cs @@ -29,7 +29,6 @@ if (SetProperty(ref _mediaInputItem, value, nameof(MediaInputItemValue)) && value.HasValue) { InitMediaInput(); - async void InitMediaInput() { _mediaInputComputer = await _mediaInputSystem.CreateFrameReaderAsync(_mediaInputSystem.FrameSources[value.Value.ID], MediaEncodingSubtypes.Bgra8); @@ -49,7 +48,6 @@ if (SetProperty(ref _mediaInputQuality, value, nameof(MediaInputQualityValue)) && value.HasValue) { SetMediaInputQuality(); - async void SetMediaInputQuality() { await _mediaInputSystem.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoRecord, value.Value.Data); diff --git a/Qwilight/System/TwilightSystem.cs b/Qwilight/System/TwilightSystem.cs index c6a4acf..1ec683c 100644 --- a/Qwilight/System/TwilightSystem.cs +++ b/Qwilight/System/TwilightSystem.cs @@ -79,7 +79,7 @@ _wantAvatarDrawing = false; SetAvatarDrawing(); - async void SetAvatarDrawing() => SetProperty(ref _avatarDrawing, (await AvatarDrawingSystem.Instance.GetAvatarDrawing(AvatarID)).DefaultDrawing, nameof(AvatarDrawing)); + async void SetAvatarDrawing() => SetProperty(ref _avatarDrawing, (await AvatarDrawingSystem.Instance.GetAvatarDrawing(AvatarID).ConfigureAwait(false)).DefaultDrawing, nameof(AvatarDrawing)); } return _avatarDrawing; } @@ -1023,7 +1023,7 @@ _ => default }; var date = DateTime.Now; - await DB.Instance.SetEventNote(eventNoteID, eventNoteName, date, eventNoteVariety); + await DB.Instance.SetEventNote(eventNoteID, eventNoteName, date, eventNoteVariety).ConfigureAwait(false); savedBundleItem.Variety = NotifySystem.NotifyVariety.Quit; savedBundleItem.Text = LanguageSystem.Instance.SavedBundleContents; NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.NotSave, savedBundleItem.Text); @@ -1394,9 +1394,9 @@ try { var dataGet = new HttpRequestMessage(HttpMethod.Get, target); - var www = await _wwwClient.SendAsync(dataGet); + var www = await _wwwClient.SendAsync(dataGet).ConfigureAwait(false); www.EnsureSuccessStatusCode(); - return await www.Content.ReadAsStreamAsync(); + return await www.Content.ReadAsStreamAsync().ConfigureAwait(false); } catch { @@ -1413,9 +1413,9 @@ try { var dataGet = new HttpRequestMessage(HttpMethod.Get, target); - using var www = await _wwwClient.SendAsync(dataGet); + using var www = await _wwwClient.SendAsync(dataGet).ConfigureAwait(false); www.EnsureSuccessStatusCode(); - var text = await www.Content.ReadAsStringAsync(); + var text = await www.Content.ReadAsStringAsync().ConfigureAwait(false); if (!string.IsNullOrEmpty(text)) { return Utility.GetJSON(text); @@ -1440,7 +1440,7 @@ Content = new StringContent(data, Encoding.UTF8, dataVariety) }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); - using var www = await _wwwClient.SendAsync(dataPost); + using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); www.EnsureSuccessStatusCode(); return true; } @@ -1458,7 +1458,7 @@ { try { - var dataContents = new ByteArrayContent(await File.ReadAllBytesAsync(fileName)); + var dataContents = new ByteArrayContent(await File.ReadAllBytesAsync(fileName).ConfigureAwait(false)); dataContents.Headers.ContentDisposition = new("form-data") { Name = "data", @@ -1474,7 +1474,7 @@ }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); dataPost.Headers.Add("totem", Totem); - using var www = await _wwwClient.SendAsync(dataPost); + using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); www.EnsureSuccessStatusCode(); return true; } @@ -1497,9 +1497,9 @@ Content = new ByteArrayContent(data) }; dataPost.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); - using var www = await _wwwClient.SendAsync(dataPost); + using var www = await _wwwClient.SendAsync(dataPost).ConfigureAwait(false); www.EnsureSuccessStatusCode(); - return await www.Content.ReadAsStringAsync(); + return await www.Content.ReadAsStringAsync().ConfigureAwait(false); } catch { @@ -1521,7 +1521,7 @@ }; dataPut.Headers.Add("millis", DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString()); dataPut.Headers.Add("totem", Totem); - using var www = await _wwwClient.SendAsync(dataPut); + using var www = await _wwwClient.SendAsync(dataPut).ConfigureAwait(false); www.EnsureSuccessStatusCode(); return true; } @@ -1535,7 +1535,7 @@ public async void GetDefaultNoteDate(long defaultNoteDate, bool isSilent) { - var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultNoteDate?date={defaultNoteDate}"); + var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultNoteDate?date={defaultNoteDate}").ConfigureAwait(false); if (twilightWwwDefaultDate.HasValue) { var date = twilightWwwDefaultDate.Value.date; @@ -1574,7 +1574,7 @@ public async void GetDefaultUIDate(long defaultUIDate, bool isSilent) { - var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultUIDate?date={defaultUIDate}"); + var twilightWwwDefaultDate = await GetWwwParallel($"{QwilightComponent.QwilightAPI}/defaultUIDate?date={defaultUIDate}").ConfigureAwait(false); if (twilightWwwDefaultDate.HasValue && !ViewModels.Instance.MainValue.IsVital) { var date = twilightWwwDefaultDate.Value.date; diff --git a/Qwilight/UIComponent/AvatarEdgeItem.cs b/Qwilight/UIComponent/AvatarEdgeItem.cs index 2e6b374..c2b2e1e 100644 --- a/Qwilight/UIComponent/AvatarEdgeItem.cs +++ b/Qwilight/UIComponent/AvatarEdgeItem.cs @@ -22,7 +22,7 @@ SetDrawing(); async void SetDrawing() { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/edge?edgeID={EdgeID}"); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/edge?edgeID={EdgeID}").ConfigureAwait(false); if (s.Length > 0) { try diff --git a/Qwilight/UIComponent/WwwLevelGroup.cs b/Qwilight/UIComponent/WwwLevelGroup.cs index 9dae067..b92ff65 100644 --- a/Qwilight/UIComponent/WwwLevelGroup.cs +++ b/Qwilight/UIComponent/WwwLevelGroup.cs @@ -44,13 +44,13 @@ { try { - await DB.Instance.SetEventNoteData(WwwLevelComputingCollection); + await DB.Instance.SetEventNoteData(WwwLevelComputingCollection).ConfigureAwait(false); if (WwwLevelItemValue != null) { var eventNoteName = WwwLevelItemValue.Title; var date = DateTime.Now; var eventNoteVariety = DB.EventNoteVariety.Qwilight; - await DB.Instance.SetEventNote(GetEventNoteID(), eventNoteName, date, eventNoteVariety); + await DB.Instance.SetEventNote(GetEventNoteID(), eventNoteName, date, eventNoteVariety).ConfigureAwait(false); var mainViewModel = ViewModels.Instance.MainValue; mainViewModel.LoadEventNoteEntryItems(); mainViewModel.Want(); @@ -232,8 +232,7 @@ IsLevelItemLoading = true; var levelID = value.LevelID; - - var twilightWwwLevel = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelID={levelID}&language={Configure.Instance.Language}"); + var twilightWwwLevel = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/level?levelID={levelID}&language={Configure.Instance.Language}").ConfigureAwait(false); if (twilightWwwLevel.HasValue && WwwLevelItemValue?.LevelID == levelID) { var twilightWwwLevelValue = twilightWwwLevel.Value; @@ -244,34 +243,6 @@ Comment = value.Comment; OnPropertyChanged(nameof(Comment)); - WwwLevelComputingCollection.Clear(); - foreach (var levelNote in twilightWwwLevelValue.levelNote) - { - var title = levelNote.title; - var artist = levelNote.artist; - var levelText = levelNote.levelText; - var genre = levelNote.genre; - var noteVariety = levelNote.noteVariety; - if (noteVariety == BaseNoteFile.NoteVariety.EventNote) - { - title = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); - artist = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); - levelText = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); - genre = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); - } - WwwLevelComputingCollection.Add(new WwwLevelComputing - { - WwwLevelNoteVariety = noteVariety, - NoteID = levelNote.noteID, - Title = title, - Artist = artist, - Genre = genre, - LevelValue = levelNote.level, - LevelText = levelText, - NotHaveIt = !ViewModels.Instance.MainValue.NoteID512s.ContainsKey(levelNote.noteID) - }); - } - Array.Fill(StandContents, null); if (twilightWwwLevelValue.stand != null) { @@ -382,247 +353,278 @@ var siteContainerViewModel = ViewModels.Instance.SiteContainerValue; var toModifyModeComponentViewModel = ViewModels.Instance.ModifyModeComponentValue; - AutoModes.Clear(); - if (twilightWwwLevelValue.autoMode != null) + HandlingUISystem.Instance.HandleParallel(() => { - foreach (var autoMode in twilightWwwLevelValue.autoMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.AutoModeVariety].FindIndex(modeComponentValue => (ModeComponent.AutoMode)modeComponentValue.Value == value))) + WwwLevelComputingCollection.Clear(); + foreach (var levelNote in twilightWwwLevelValue.levelNote) { - AutoModes.Add(new WwwLevelModeComponent + var title = levelNote.title; + var artist = levelNote.artist; + var levelText = levelNote.levelText; + var genre = levelNote.genre; + var noteVariety = levelNote.noteVariety; + if (noteVariety == BaseNoteFile.NoteVariety.EventNote) { - Value = autoMode, - OnInput = new RelayCommand(() => - { - mainViewModel.ModeComponentValue.AutoModeValue = autoMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsAutoModeCompatible)); - }) + title = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); + artist = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); + levelText = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); + genre = new string('❌', 1 + RandomNumberGenerator.GetInt32(10)); + } + WwwLevelComputingCollection.Add(new WwwLevelComputing + { + WwwLevelNoteVariety = noteVariety, + NoteID = levelNote.noteID, + Title = title, + Artist = artist, + Genre = genre, + LevelValue = levelNote.level, + LevelText = levelText, + NotHaveIt = !ViewModels.Instance.MainValue.NoteID512s.ContainsKey(levelNote.noteID) }); } - } - NoteSaltModes.Clear(); - if (twilightWwwLevelValue.noteSaltMode != null) - { - foreach (var noteSaltMode in twilightWwwLevelValue.noteSaltMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteSaltModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteSaltMode)modeComponentValue.Value == value))) + AutoModes.Clear(); + if (twilightWwwLevelValue.autoMode != null) { - NoteSaltModes.Add(new WwwLevelModeComponent + foreach (var autoMode in twilightWwwLevelValue.autoMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.AutoModeVariety].FindIndex(modeComponentValue => (ModeComponent.AutoMode)modeComponentValue.Value == value))) { - Value = noteSaltMode, - OnInput = new RelayCommand(() => + AutoModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.NoteSaltModeValue = noteSaltMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsNoteSaltModeCompatible)); - }) - }); + Value = autoMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.AutoModeValue = autoMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsAutoModeCompatible)); + }) + }); + } } - } - FaintNoteModes.Clear(); - if (twilightWwwLevelValue.faintNoteMode != null) - { - foreach (var faintNoteMode in twilightWwwLevelValue.faintNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.FaintNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.FaintNoteMode)modeComponentValue.Value == value))) + NoteSaltModes.Clear(); + if (twilightWwwLevelValue.noteSaltMode != null) { - FaintNoteModes.Add(new WwwLevelModeComponent + foreach (var noteSaltMode in twilightWwwLevelValue.noteSaltMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteSaltModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteSaltMode)modeComponentValue.Value == value))) { - Value = faintNoteMode, - OnInput = new RelayCommand(() => + NoteSaltModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.FaintNoteModeValue = faintNoteMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsFaintNoteModeCompatible)); - }) - }); + Value = noteSaltMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.NoteSaltModeValue = noteSaltMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsNoteSaltModeCompatible)); + }) + }); + } } - } - JudgmentModes.Clear(); - if (twilightWwwLevelValue.judgmentMode != null) - { - foreach (var judgmentMode in twilightWwwLevelValue.judgmentMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.JudgmentModeVariety].FindIndex(modeComponentValue => (ModeComponent.JudgmentMode)modeComponentValue.Value == value))) + FaintNoteModes.Clear(); + if (twilightWwwLevelValue.faintNoteMode != null) { - JudgmentModes.Add(new WwwLevelModeComponent + foreach (var faintNoteMode in twilightWwwLevelValue.faintNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.FaintNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.FaintNoteMode)modeComponentValue.Value == value))) { - Value = judgmentMode, - OnInput = new RelayCommand(() => + FaintNoteModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.JudgmentModeValue = judgmentMode; - mainViewModel.OnJudgmentMeterMillisModified(); - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsJudgmentModeCompatible)); - }) - }); + Value = faintNoteMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.FaintNoteModeValue = faintNoteMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsFaintNoteModeCompatible)); + }) + }); + } } - } - HitPointsModes.Clear(); - if (twilightWwwLevelValue.hitPointsMode != null) - { - foreach (var hitPointsMode in twilightWwwLevelValue.hitPointsMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.HitPointsModeVariety].FindIndex(modeComponentValue => (ModeComponent.HitPointsMode)modeComponentValue.Value == value))) + JudgmentModes.Clear(); + if (twilightWwwLevelValue.judgmentMode != null) { - HitPointsModes.Add(new WwwLevelModeComponent + foreach (var judgmentMode in twilightWwwLevelValue.judgmentMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.JudgmentModeVariety].FindIndex(modeComponentValue => (ModeComponent.JudgmentMode)modeComponentValue.Value == value))) { - Value = hitPointsMode, - OnInput = new RelayCommand(() => + JudgmentModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.HitPointsModeValue = hitPointsMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsHitPointsModeCompatible)); - }) - }); + Value = judgmentMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.JudgmentModeValue = judgmentMode; + mainViewModel.OnJudgmentMeterMillisModified(); + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsJudgmentModeCompatible)); + }) + }); + } } - } - NoteMobilityModes.Clear(); - if (twilightWwwLevelValue.noteMobilityMode != null) - { - foreach (var noteMobilityMode in twilightWwwLevelValue.noteMobilityMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteMobilityModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteMobilityMode)modeComponentValue.Value == value))) + HitPointsModes.Clear(); + if (twilightWwwLevelValue.hitPointsMode != null) { - NoteMobilityModes.Add(new WwwLevelModeComponent + foreach (var hitPointsMode in twilightWwwLevelValue.hitPointsMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.HitPointsModeVariety].FindIndex(modeComponentValue => (ModeComponent.HitPointsMode)modeComponentValue.Value == value))) { - Value = noteMobilityMode, - OnInput = new RelayCommand(() => + HitPointsModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.NoteMobilityModeValue = noteMobilityMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsNoteMobilityModeCompatible)); - }) - }); + Value = hitPointsMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.HitPointsModeValue = hitPointsMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsHitPointsModeCompatible)); + }) + }); + } } - } - LongNoteModes.Clear(); - if (twilightWwwLevelValue.longNoteMode != null) - { - foreach (var longNoteMode in twilightWwwLevelValue.longNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.LongNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.LongNoteMode)modeComponentValue.Value == value))) + NoteMobilityModes.Clear(); + if (twilightWwwLevelValue.noteMobilityMode != null) { - LongNoteModes.Add(new WwwLevelModeComponent + foreach (var noteMobilityMode in twilightWwwLevelValue.noteMobilityMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteMobilityModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteMobilityMode)modeComponentValue.Value == value))) { - Value = longNoteMode, - OnInput = new RelayCommand(() => + NoteMobilityModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.LongNoteModeValue = longNoteMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsLongNoteModeCompatible)); - }) - }); + Value = noteMobilityMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.NoteMobilityModeValue = noteMobilityMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsNoteMobilityModeCompatible)); + }) + }); + } } - } - InputFavorModes.Clear(); - if (twilightWwwLevelValue.inputFavorMode != null) - { - foreach (var inputFavorMode in twilightWwwLevelValue.inputFavorMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.InputFavorModeVariety].FindIndex(modeComponentValue => (ModeComponent.InputFavorMode)modeComponentValue.Value == value))) + LongNoteModes.Clear(); + if (twilightWwwLevelValue.longNoteMode != null) { - InputFavorModes.Add(new WwwLevelModeComponent + foreach (var longNoteMode in twilightWwwLevelValue.longNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.LongNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.LongNoteMode)modeComponentValue.Value == value))) { - Value = inputFavorMode, - OnInput = new RelayCommand(() => + LongNoteModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.InputFavorModeValue = inputFavorMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsInputFavorModeCompatible)); - }) - }); + Value = longNoteMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.LongNoteModeValue = longNoteMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsLongNoteModeCompatible)); + }) + }); + } } - } - NoteModifyModes.Clear(); - if (twilightWwwLevelValue.noteModifyMode != null) - { - foreach (var noteModifyMode in twilightWwwLevelValue.noteModifyMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteModifyModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteModifyMode)modeComponentValue.Value == value))) + InputFavorModes.Clear(); + if (twilightWwwLevelValue.inputFavorMode != null) { - NoteModifyModes.Add(new WwwLevelModeComponent + foreach (var inputFavorMode in twilightWwwLevelValue.inputFavorMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.InputFavorModeVariety].FindIndex(modeComponentValue => (ModeComponent.InputFavorMode)modeComponentValue.Value == value))) { - Value = noteModifyMode, - OnInput = new RelayCommand(() => + InputFavorModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.NoteModifyModeValue = noteModifyMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsNoteModifyModeCompatible)); - }) - }); + Value = inputFavorMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.InputFavorModeValue = inputFavorMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsInputFavorModeCompatible)); + }) + }); + } } - } - BPMModes.Clear(); - if (twilightWwwLevelValue.bpmMode != null) - { - foreach (var bpmMode in twilightWwwLevelValue.bpmMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.BPMModeVariety].FindIndex(modeComponentValue => (ModeComponent.BPMMode)modeComponentValue.Value == value))) + NoteModifyModes.Clear(); + if (twilightWwwLevelValue.noteModifyMode != null) { - BPMModes.Add(new WwwLevelModeComponent + foreach (var noteModifyMode in twilightWwwLevelValue.noteModifyMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.NoteModifyModeVariety].FindIndex(modeComponentValue => (ModeComponent.NoteModifyMode)modeComponentValue.Value == value))) { - Value = bpmMode, - OnInput = new RelayCommand(() => + NoteModifyModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.BPMModeValue = bpmMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsBPMModeCompatible)); - }) - }); + Value = noteModifyMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.NoteModifyModeValue = noteModifyMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsNoteModifyModeCompatible)); + }) + }); + } } - } - WaveModes.Clear(); - if (twilightWwwLevelValue.waveMode != null) - { - foreach (var waveMode in twilightWwwLevelValue.waveMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.WaveModeVariety].FindIndex(modeComponentValue => (ModeComponent.WaveMode)modeComponentValue.Value == value))) + BPMModes.Clear(); + if (twilightWwwLevelValue.bpmMode != null) { - WaveModes.Add(new WwwLevelModeComponent + foreach (var bpmMode in twilightWwwLevelValue.bpmMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.BPMModeVariety].FindIndex(modeComponentValue => (ModeComponent.BPMMode)modeComponentValue.Value == value))) { - Value = waveMode, - OnInput = new RelayCommand(() => + BPMModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.WaveModeValue = waveMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsWaveModeCompatible)); - }) - }); + Value = bpmMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.BPMModeValue = bpmMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsBPMModeCompatible)); + }) + }); + } } - } - SetNoteModes.Clear(); - if (twilightWwwLevelValue.setNoteMode != null) - { - foreach (var setNoteMode in twilightWwwLevelValue.setNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.SetNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.SetNoteMode)modeComponentValue.Value == value))) + WaveModes.Clear(); + if (twilightWwwLevelValue.waveMode != null) { - SetNoteModes.Add(new WwwLevelModeComponent + foreach (var waveMode in twilightWwwLevelValue.waveMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.WaveModeVariety].FindIndex(modeComponentValue => (ModeComponent.WaveMode)modeComponentValue.Value == value))) { - Value = setNoteMode, - OnInput = new RelayCommand(() => + WaveModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.SetNoteModeValue = setNoteMode; - siteContainerViewModel.CallSetModeComponent(); - mainViewModel.HandleAutoComputer(); - OnPropertyChanged(nameof(IsSetNoteModeCompatible)); - }) - }); + Value = waveMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.WaveModeValue = waveMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsWaveModeCompatible)); + }) + }); + } } - } - LowestJudgmentConditionModes.Clear(); - if (twilightWwwLevelValue.lowestJudgmentConditionMode != null) - { - foreach (var lowestJudgmentConditionMode in twilightWwwLevelValue.lowestJudgmentConditionMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.LowestJudgmentConditionModeVariety].FindIndex(modeComponentValue => (ModeComponent.LowestJudgmentConditionMode)modeComponentValue.Value == value))) + SetNoteModes.Clear(); + if (twilightWwwLevelValue.setNoteMode != null) { - LowestJudgmentConditionModes.Add(new WwwLevelModeComponent + foreach (var setNoteMode in twilightWwwLevelValue.setNoteMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.SetNoteModeVariety].FindIndex(modeComponentValue => (ModeComponent.SetNoteMode)modeComponentValue.Value == value))) { - Value = lowestJudgmentConditionMode, - OnInput = new RelayCommand(() => + SetNoteModes.Add(new WwwLevelModeComponent { - mainViewModel.ModeComponentValue.LowestJudgmentConditionModeValue = lowestJudgmentConditionMode; - siteContainerViewModel.CallSetModeComponent(); - OnPropertyChanged(nameof(IsLowestJudgmentConditionModeCompatible)); - }) - }); + Value = setNoteMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.SetNoteModeValue = setNoteMode; + siteContainerViewModel.CallSetModeComponent(); + mainViewModel.HandleAutoComputer(); + OnPropertyChanged(nameof(IsSetNoteModeCompatible)); + }) + }); + } } - } + + LowestJudgmentConditionModes.Clear(); + if (twilightWwwLevelValue.lowestJudgmentConditionMode != null) + { + foreach (var lowestJudgmentConditionMode in twilightWwwLevelValue.lowestJudgmentConditionMode.OrderBy(value => toModifyModeComponentViewModel.ModeComponentValues[ModifyModeComponentViewModel.LowestJudgmentConditionModeVariety].FindIndex(modeComponentValue => (ModeComponent.LowestJudgmentConditionMode)modeComponentValue.Value == value))) + { + LowestJudgmentConditionModes.Add(new WwwLevelModeComponent + { + Value = lowestJudgmentConditionMode, + OnInput = new RelayCommand(() => + { + mainViewModel.ModeComponentValue.LowestJudgmentConditionModeValue = lowestJudgmentConditionMode; + siteContainerViewModel.CallSetModeComponent(); + OnPropertyChanged(nameof(IsLowestJudgmentConditionModeCompatible)); + }) + }); + } + } + }); Utility.SetUICollection(ClearedTitleItemCollection, twilightWwwLevelValue.titles.Select(title => new AvatarTitleItem { diff --git a/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml.cs b/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml.cs index 2b46de9..80b14a0 100644 --- a/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml.cs +++ b/Qwilight/View/MainWindow/DefaultMode/CommentView.xaml.cs @@ -21,11 +21,11 @@ void OnTwilightCommentViewModified(object sender, SelectionChangedEventArgs e) => (DataContext as MainViewModel).OnTwilightCommentViewModified(); - void OnTwilightComment(object sender, MouseButtonEventArgs e) + async void OnTwilightComment(object sender, MouseButtonEventArgs e) { if (e.ClickCount >= 2) { - (DataContext as MainViewModel).OnTwilightComment(); + await (DataContext as MainViewModel).OnTwilightComment(); } } diff --git a/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml.cs b/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml.cs index 659656a..145ca73 100644 --- a/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml.cs +++ b/Qwilight/View/MainWindow/DefaultMode/EntryView.xaml.cs @@ -22,7 +22,7 @@ void OnFitMode(object sender, EventArgs e) => (DataContext as MainViewModel).OnFitMode(); - void OnEntryViewInputLower(object sender, KeyEventArgs e) => (DataContext as MainViewModel).OnEntryViewInputLower(e); + async void OnEntryViewInputLower(object sender, KeyEventArgs e) => await (DataContext as MainViewModel).OnEntryViewInputLower(e); void OnEntryViewPointLower(object sender, MouseButtonEventArgs e) => (DataContext as MainViewModel).OnEntryViewPointLower(e); diff --git a/Qwilight/View/MainWindow/MainWindow.xaml.cs b/Qwilight/View/MainWindow/MainWindow.xaml.cs index d84d77a..555e89a 100644 --- a/Qwilight/View/MainWindow/MainWindow.xaml.cs +++ b/Qwilight/View/MainWindow/MainWindow.xaml.cs @@ -146,11 +146,11 @@ void OnFileAs(object sender, DragEventArgs e) => ViewModels.Instance.MainValue.OnFileAs(e); - void OnLoaded(object sender, EventArgs e) + async void OnLoaded(object sender, EventArgs e) { var mainViewModel = ViewModels.Instance.MainValue; mainViewModel.OnWindowDPIModified(PInvoke.GetDpiForWindow(_handle) / 96.0); - mainViewModel.OnLoaded(_handle); + await mainViewModel.OnLoaded(_handle); } public async void Receive(ICC message) diff --git a/Qwilight/View/QwilightClass.xaml.cs b/Qwilight/View/QwilightClass.xaml.cs index 5ef76f8..6dfa06f 100644 --- a/Qwilight/View/QwilightClass.xaml.cs +++ b/Qwilight/View/QwilightClass.xaml.cs @@ -95,14 +95,14 @@ readonly ConcurrentDictionary _handledFaultMap = new(); - async void OnUnhandledFault(Exception e) + async ValueTask OnUnhandledFault(Exception e) { if (_handledFaultMap.TryAdd(e, null)) { var (logFilePath, faultText) = Utility.SetFault(QwilightComponent.FaultEntryPath, e); PInvoke.MessageBox(HWND.Null, e.Message, "Qwilight", MESSAGEBOX_STYLE.MB_OK | MESSAGEBOX_STYLE.MB_ICONERROR); Utility.OpenAs(logFilePath); - await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/fault", faultText); + await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/fault", faultText).ConfigureAwait(false); } } @@ -112,12 +112,12 @@ { AppContext.SetSwitch("MVVMTOOLKIT_DISABLE_INOTIFYPROPERTYCHANGING", true); - AppDomain.CurrentDomain.UnhandledException += (sender, e) => + AppDomain.CurrentDomain.UnhandledException += async (sender, e) => { var fault = e.ExceptionObject as Exception; if (!(fault is Win32Exception && (fault as Win32Exception).NativeErrorCode == 1400)) { - OnUnhandledFault(fault); + await OnUnhandledFault(fault).ConfigureAwait(false); } }; HandlingUISystem.Instance.Init(OnUnhandledFault); diff --git a/Qwilight/View/Site.xaml.cs b/Qwilight/View/Site.xaml.cs index 1f6ef73..f643456 100644 --- a/Qwilight/View/Site.xaml.cs +++ b/Qwilight/View/Site.xaml.cs @@ -11,7 +11,7 @@ void OnInputLower(object sender, KeyEventArgs e) => (DataContext as SiteViewModel).OnInputLower(e); - void OnEssentialInputLower(object sender, KeyEventArgs e) => (DataContext as SiteViewModel).OnEssentialInputLower(e); + async void OnEssentialInputLower(object sender, KeyEventArgs e) => await (DataContext as SiteViewModel).OnEssentialInputLower(e); void OnPointedModified(object sender, KeyboardFocusChangedEventArgs e) => (DataContext as SiteViewModel).OnPointedModified(sender == e.NewFocus); diff --git a/Qwilight/ViewModel/AvatarEdgeViewModel.cs b/Qwilight/ViewModel/AvatarEdgeViewModel.cs index 7c4b913..7bb4332 100644 --- a/Qwilight/ViewModel/AvatarEdgeViewModel.cs +++ b/Qwilight/ViewModel/AvatarEdgeViewModel.cs @@ -41,7 +41,7 @@ base.OnOpened(); IsAvatarEdgeLoading = true; - var edgeIDs = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/edges?avatarID={TwilightSystem.Instance.AvatarID}"); + var edgeIDs = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/edges?avatarID={TwilightSystem.Instance.AvatarID}").ConfigureAwait(false); if (edgeIDs != null) { Utility.SetUICollection(AvatarEdgeItemCollection, edgeIDs.Select(edgeID => new AvatarEdgeItem diff --git a/Qwilight/ViewModel/AvatarTitleViewModel.cs b/Qwilight/ViewModel/AvatarTitleViewModel.cs index 197734c..e4cf432 100644 --- a/Qwilight/ViewModel/AvatarTitleViewModel.cs +++ b/Qwilight/ViewModel/AvatarTitleViewModel.cs @@ -42,7 +42,7 @@ base.OnOpened(); IsAvatarTitleLoading = true; - var twilightWwwTitles = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/titles?avatarID={TwilightSystem.Instance.AvatarID}&language={Configure.Instance.Language}"); + var twilightWwwTitles = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/titles?avatarID={TwilightSystem.Instance.AvatarID}&language={Configure.Instance.Language}").ConfigureAwait(false); if (twilightWwwTitles != null) { Utility.SetUICollection(AvatarTitleItemCollection, twilightWwwTitles.Prepend(new JSON.TwilightWwwTitles diff --git a/Qwilight/ViewModel/AvatarViewModel.cs b/Qwilight/ViewModel/AvatarViewModel.cs index 264b6fb..088900a 100644 --- a/Qwilight/ViewModel/AvatarViewModel.cs +++ b/Qwilight/ViewModel/AvatarViewModel.cs @@ -177,7 +177,7 @@ IsAvatarLoading = true; - var twilightWwwAvatar = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/avatar?avatarID={AvatarID}"); + var twilightWwwAvatar = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/avatar?avatarID={AvatarID}").ConfigureAwait(false); if (twilightWwwAvatar.HasValue) { var twilightWwwAvatarValue = twilightWwwAvatar.Value; @@ -211,7 +211,7 @@ OnPropertyChanged(nameof(AvatarViewLevelValue)); var avatarAbility5KClass = twilightWwwAvatarValue.avatarAbility5KClass; - using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass5K={(avatarAbility5KClass < 0 ? avatarAbility5KClass : 100 * avatarAbility5KClass)}")) + using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass5K={(avatarAbility5KClass < 0 ? avatarAbility5KClass : 100 * avatarAbility5KClass)}").ConfigureAwait(false)) { if (s.Length > 0) { @@ -238,7 +238,7 @@ OnPropertyChanged(nameof(AvatarViewAbility5KText)); var avatarAbility7KClass = twilightWwwAvatarValue.avatarAbility7KClass; - using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass7K={(avatarAbility7KClass < 0 ? avatarAbility7KClass : 100 * avatarAbility7KClass)}")) + using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass7K={(avatarAbility7KClass < 0 ? avatarAbility7KClass : 100 * avatarAbility7KClass)}").ConfigureAwait(false)) { if (s.Length > 0) { @@ -265,7 +265,7 @@ OnPropertyChanged(nameof(AvatarViewAbility7KText)); var avatarAbility9KClass = twilightWwwAvatarValue.avatarAbility9KClass; - using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass9K={(avatarAbility9KClass < 0 ? avatarAbility9KClass : 100 * avatarAbility9KClass)}")) + using (var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/drawing?abilityClass9K={(avatarAbility9KClass < 0 ? avatarAbility9KClass : 100 * avatarAbility9KClass)}").ConfigureAwait(false)) { if (s.Length > 0) { @@ -299,92 +299,95 @@ Array.Copy(twilightWwwAvatarValue.dateValues, DateValues, DateValues.Length); - FavoriteAvatarComputingCollection.Clear(); - foreach (var wwwAvatarFavorite in twilightWwwAvatarValue.favorites) + HandlingUISystem.Instance.HandleParallel(() => { - FavoriteAvatarComputingCollection.Add(new AvatarComputing + FavoriteAvatarComputingCollection.Clear(); + foreach (var wwwAvatarFavorite in twilightWwwAvatarValue.favorites) { - AvatarNoteVarietyValue = wwwAvatarFavorite.noteVariety, - Title = wwwAvatarFavorite.title, - Artist = wwwAvatarFavorite.artist, - Genre = wwwAvatarFavorite.genre, - LevelValue = wwwAvatarFavorite.level, - LevelText = wwwAvatarFavorite.levelText, - AvatarValue = wwwAvatarFavorite.totalCount.ToString(LanguageSystem.Instance.HandledContents) - }); - } + FavoriteAvatarComputingCollection.Add(new AvatarComputing + { + AvatarNoteVarietyValue = wwwAvatarFavorite.noteVariety, + Title = wwwAvatarFavorite.title, + Artist = wwwAvatarFavorite.artist, + Genre = wwwAvatarFavorite.genre, + LevelValue = wwwAvatarFavorite.level, + LevelText = wwwAvatarFavorite.levelText, + AvatarValue = wwwAvatarFavorite.totalCount.ToString(LanguageSystem.Instance.HandledContents) + }); + } - LastAvatarComputingCollection.Clear(); - foreach (var wwwAvatarLast in twilightWwwAvatarValue.lasts) - { - LastAvatarComputingCollection.Add(new AvatarComputing + LastAvatarComputingCollection.Clear(); + foreach (var wwwAvatarLast in twilightWwwAvatarValue.lasts) { - AvatarNoteVarietyValue = wwwAvatarLast.noteVariety, - Title = wwwAvatarLast.title, - Artist = wwwAvatarLast.artist, - Genre = wwwAvatarLast.genre, - LevelValue = wwwAvatarLast.level, - LevelText = wwwAvatarLast.levelText, - AvatarValue = DateTime.UnixEpoch.ToLocalTime().AddMilliseconds(wwwAvatarLast.date).ToString() - }); - } + LastAvatarComputingCollection.Add(new AvatarComputing + { + AvatarNoteVarietyValue = wwwAvatarLast.noteVariety, + Title = wwwAvatarLast.title, + Artist = wwwAvatarLast.artist, + Genre = wwwAvatarLast.genre, + LevelValue = wwwAvatarLast.level, + LevelText = wwwAvatarLast.levelText, + AvatarValue = DateTime.UnixEpoch.ToLocalTime().AddMilliseconds(wwwAvatarLast.date).ToString() + }); + } - Ability5KAvatarComputingCollection.Clear(); - foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities5K) - { - Ability5KAvatarComputingCollection.Add(new AvatarComputing + Ability5KAvatarComputingCollection.Clear(); + foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities5K) { - AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, - Title = wwwAvatarAbility.title, - Artist = wwwAvatarAbility.artist, - Genre = wwwAvatarAbility.genre, - LevelValue = wwwAvatarAbility.level, - LevelText = wwwAvatarAbility.levelText, - AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) - }); - } + Ability5KAvatarComputingCollection.Add(new AvatarComputing + { + AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, + Title = wwwAvatarAbility.title, + Artist = wwwAvatarAbility.artist, + Genre = wwwAvatarAbility.genre, + LevelValue = wwwAvatarAbility.level, + LevelText = wwwAvatarAbility.levelText, + AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) + }); + } - Ability7KAvatarComputingCollection.Clear(); - foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities7K) - { - Ability7KAvatarComputingCollection.Add(new AvatarComputing + Ability7KAvatarComputingCollection.Clear(); + foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities7K) { - AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, - Title = wwwAvatarAbility.title, - Artist = wwwAvatarAbility.artist, - Genre = wwwAvatarAbility.genre, - LevelValue = wwwAvatarAbility.level, - LevelText = wwwAvatarAbility.levelText, - AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) - }); - } + Ability7KAvatarComputingCollection.Add(new AvatarComputing + { + AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, + Title = wwwAvatarAbility.title, + Artist = wwwAvatarAbility.artist, + Genre = wwwAvatarAbility.genre, + LevelValue = wwwAvatarAbility.level, + LevelText = wwwAvatarAbility.levelText, + AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) + }); + } - Ability9KAvatarComputingCollection.Clear(); - foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities9K) - { - Ability9KAvatarComputingCollection.Add(new AvatarComputing + Ability9KAvatarComputingCollection.Clear(); + foreach (var wwwAvatarAbility in twilightWwwAvatarValue.abilities9K) { - AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, - Title = wwwAvatarAbility.title, - Artist = wwwAvatarAbility.artist, - Genre = wwwAvatarAbility.genre, - LevelValue = wwwAvatarAbility.level, - LevelText = wwwAvatarAbility.levelText, - AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) - }); - } + Ability9KAvatarComputingCollection.Add(new AvatarComputing + { + AvatarNoteVarietyValue = wwwAvatarAbility.noteVariety, + Title = wwwAvatarAbility.title, + Artist = wwwAvatarAbility.artist, + Genre = wwwAvatarAbility.genre, + LevelValue = wwwAvatarAbility.level, + LevelText = wwwAvatarAbility.levelText, + AvatarValue = string.Format(LanguageSystem.Instance.AbilityStandContents, wwwAvatarAbility.stand.ToString("#,##0"), Math.Round(wwwAvatarAbility.ability, 3)) + }); + } - AvatarWwwLevelItemCollection.Clear(); - foreach (var wwwLevel in twilightWwwAvatarValue.levels) - { - AvatarWwwLevelItemCollection.Add(new AvatarLevelItem + AvatarWwwLevelItemCollection.Clear(); + foreach (var wwwLevel in twilightWwwAvatarValue.levels) { - Title = wwwLevel.title, - LevelValue = wwwLevel.level, - LevelText = wwwLevel.levelText, - Date = DateTime.UnixEpoch.ToLocalTime().AddMilliseconds(wwwLevel.date).ToString() - }); - } + AvatarWwwLevelItemCollection.Add(new AvatarLevelItem + { + Title = wwwLevel.title, + LevelValue = wwwLevel.level, + LevelText = wwwLevel.levelText, + Date = DateTime.UnixEpoch.ToLocalTime().AddMilliseconds(wwwLevel.date).ToString() + }); + } + }); OnPropertyChanged(nameof(AvatarViewWwwLevelContents)); } @@ -415,7 +418,7 @@ new[] { ".png" }, new Action(async fileName => { - if (await TwilightSystem.Instance.PostAvatarDrawingParallel($"{QwilightComponent.TaehuiNetAPI}/avatar/drawing", fileName)) + if (await TwilightSystem.Instance.PostAvatarDrawingParallel($"{QwilightComponent.TaehuiNetAPI}/avatar/drawing", fileName).ConfigureAwait(false)) { InitAvatarWwwValue(TwilightSystem.Instance.AvatarID); TwilightSystem.Instance.NotifyAvatarDrawing(); @@ -439,7 +442,7 @@ base.OnCollasped(); if (IsMe) { - await TwilightSystem.Instance.PutAvatarParallel($"{QwilightComponent.TaehuiNetAPI}/avatar/avatarIntro", AvatarIntro); + await TwilightSystem.Instance.PutAvatarParallel($"{QwilightComponent.TaehuiNetAPI}/avatar/avatarIntro", AvatarIntro).ConfigureAwait(false); } } } diff --git a/Qwilight/ViewModel/ConfigureViewModel.cs b/Qwilight/ViewModel/ConfigureViewModel.cs index 25a9f1c..27ecaf7 100644 --- a/Qwilight/ViewModel/ConfigureViewModel.cs +++ b/Qwilight/ViewModel/ConfigureViewModel.cs @@ -550,7 +550,7 @@ { ViewModels.Instance.MainValue.WipeFavoriteEntry(); Configure.Instance.DefaultEntryItems.RemoveWhere(defaultEntryItem => defaultEntryItem.DefaultEntryVarietyValue == DefaultEntryItem.DefaultEntryVariety.Favorite); - await DB.Instance.WipeFavoriteEntry(); + await DB.Instance.WipeFavoriteEntry().ConfigureAwait(false); NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.InitFavoriteEntryOK); } }) @@ -574,7 +574,7 @@ Configure.Instance.MediaWait = 0.0; Configure.Instance.BanalMediaWait = 0.0; Configure.Instance.NotifyModel(); - await DB.Instance.InitWait(); + await DB.Instance.InitWait().ConfigureAwait(false); NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.InitWaitOK); } }) @@ -621,7 +621,7 @@ MediaSystem.Instance.HandleDefaultIfAvailable(handlingComputer); MediaSystem.Instance.HandleIfAvailable(handlingComputer); } - await DB.Instance.InitMedia(); + await DB.Instance.InitMedia().ConfigureAwait(false); NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.InitMediaOK); } }) @@ -645,7 +645,7 @@ { Utility.WipeFile(commentFilePath); } - await DB.Instance.WipeComment(); + await DB.Instance.WipeComment().ConfigureAwait(false); NotifySystem.Instance.Notify(NotifySystem.NotifyVariety.OK, NotifySystem.NotifyConfigure.Default, LanguageSystem.Instance.InitCommentOK); } }) diff --git a/Qwilight/ViewModel/EventNoteViewModel.cs b/Qwilight/ViewModel/EventNoteViewModel.cs index 4b4621e..31fcfa2 100644 --- a/Qwilight/ViewModel/EventNoteViewModel.cs +++ b/Qwilight/ViewModel/EventNoteViewModel.cs @@ -80,7 +80,7 @@ } } - public async void OnInputLower(KeyEventArgs e) + public async ValueTask OnInputLower(KeyEventArgs e) { if (e.Key == Key.Enter) { @@ -88,7 +88,7 @@ { var eventNoteID = string.Join('/', NoteFileCollection.Select(noteFile => noteFile.GetNoteID512())); var date = DateTime.Now; - await DB.Instance.SetEventNote(eventNoteID, EventNoteName, date, DB.EventNoteVariety.Qwilight); + await DB.Instance.SetEventNote(eventNoteID, EventNoteName, date, DB.EventNoteVariety.Qwilight).ConfigureAwait(false); Close(); NoteFileCollection.Clear(); EventNoteName = null; diff --git a/Qwilight/ViewModel/LevelViewModel.cs b/Qwilight/ViewModel/LevelViewModel.cs index 0c9fb26..3953bb6 100644 --- a/Qwilight/ViewModel/LevelViewModel.cs +++ b/Qwilight/ViewModel/LevelViewModel.cs @@ -73,7 +73,7 @@ { if (!string.IsNullOrEmpty(levelInput)) { - await LevelSystem.Instance.LoadWww(levelInput); + await LevelSystem.Instance.LoadWww(levelInput).ConfigureAwait(false); } }) } @@ -81,7 +81,7 @@ } else { - await LevelSystem.Instance.LoadWww(www); + await LevelSystem.Instance.LoadWww(www).ConfigureAwait(false); } LevelSystem.Instance.LoadJSON(true); } @@ -91,7 +91,7 @@ { if (Configure.Instance.LevelTargetMap.TryGetValue(Configure.Instance.WantLevelName, out var target)) { - await LevelSystem.Instance.LoadWww(target); + await LevelSystem.Instance.LoadWww(target).ConfigureAwait(false); LevelSystem.Instance.LoadJSON(true); } else diff --git a/Qwilight/ViewModel/MainViewModel.cs b/Qwilight/ViewModel/MainViewModel.cs index f37adb5..03db278 100644 --- a/Qwilight/ViewModel/MainViewModel.cs +++ b/Qwilight/ViewModel/MainViewModel.cs @@ -541,7 +541,7 @@ } } - public async void OnLoaded(nint handle) + public async ValueTask OnLoaded(nint handle) { WeakReferenceMessenger.Default.Send(new() { @@ -549,7 +549,7 @@ }); StillSystem.Instance.Init(handle); - MIDISystem.Instance.HandleSystem(); + await MIDISystem.Instance.HandleSystem(); AudioSystem.Instance.LoadDefaultAudio(); AudioSystem.Instance.LoadBanalAudio(); @@ -558,7 +558,7 @@ LevelSystem.Instance.LoadJSON(false); - await ValveSystem.Instance.Init(); + await ValveSystem.Instance.Init().ConfigureAwait(false); await Task.Run(() => { BaseUI.Instance.LoadUI(null, Configure.Instance.BaseUIItemValue, false); @@ -616,7 +616,7 @@ Contents = false }); } - }); + }).ConfigureAwait(false); _isLoaded = true; } @@ -849,7 +849,7 @@ { Utility.WipeFile(defaultCommentFilePath); } - await DB.Instance.WipeComment(defaultCommentFilePath); + await DB.Instance.WipeComment(defaultCommentFilePath).ConfigureAwait(false); } }) } @@ -940,7 +940,7 @@ } } - public async void OnEntryViewInputLower(KeyEventArgs e) + public async ValueTask OnEntryViewInputLower(KeyEventArgs e) { if (IsNoteFileMode) { @@ -964,7 +964,7 @@ } foreach (var noteFile in EntryItemValue.NoteFiles.Where(noteFile => !noteFile.IsLogical)) { - await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/note", noteFile.GetContents()); + await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/note", noteFile.GetContents()).ConfigureAwait(false); } break; case DB.EventNoteVariety.Qwilight: @@ -972,7 +972,7 @@ Clipboard.SetContent(dataBundle); foreach (var noteFile in EntryItemValue.NoteFiles.Where(noteFile => !noteFile.IsLogical)) { - await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/note", noteFile.GetContents()); + await TwilightSystem.Instance.PostWwwParallel($"{QwilightComponent.QwilightAPI}/note", noteFile.GetContents()).ConfigureAwait(false); } break; } @@ -1082,7 +1082,7 @@ { if (r == MESSAGEBOX_RESULT.IDYES) { - await DB.Instance.WipeEventNote(eventNoteID); + await DB.Instance.WipeEventNote(eventNoteID).ConfigureAwait(false); LoadEventNoteEntryItems(); Want(); } @@ -1194,13 +1194,13 @@ } } - public async void OnTwilightComment() + public async ValueTask OnTwilightComment() { var noteID = EntryItemValue?.NoteFile?.GetNoteID512(); var commentID = TwilightCommentItem?.CommentID; if (!string.IsNullOrEmpty(noteID) && !string.IsNullOrEmpty(commentID)) { - using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&commentID={commentID}"); + using var s = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&commentID={commentID}").ConfigureAwait(false); var noteFile = EntryItemValue?.NoteFile; var twilightCommentItem = TwilightCommentItem; if (IsNoteFileMode && noteFile?.GetNoteID512() == noteID && twilightCommentItem?.CommentID == commentID) @@ -1387,7 +1387,7 @@ if (EntryItemValue != null) { var targetNoteFiles = EntryItemValue.NoteFiles; - var commentItems = await (IsEntryItemEventNote ? DB.Instance.GetCommentItems(targetNoteFiles[0], EntryItemValue.EventNoteID, targetNoteFiles.Length) : DB.Instance.GetCommentItems(EntryItemValue.NoteFile, EntryItemValue.EventNoteID, 1)); + var commentItems = await (IsEntryItemEventNote ? DB.Instance.GetCommentItems(targetNoteFiles[0], EntryItemValue.EventNoteID, targetNoteFiles.Length).ConfigureAwait(false) : DB.Instance.GetCommentItems(EntryItemValue.NoteFile, EntryItemValue.EventNoteID, 1).ConfigureAwait(false)); DefaultCommentCollection.Clear(); foreach (var commentItem in commentItems) @@ -1404,7 +1404,7 @@ if (noteFile != null) { var noteID = noteFile.GetNoteID512(); - var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&avatarID={TwilightSystem.Instance.AvatarID}&language={Configure.Instance.Language}&target={Configure.Instance.UbuntuNetItemTarget}"); + var twilightWwwComment = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/comment?noteID={noteID}&avatarID={TwilightSystem.Instance.AvatarID}&language={Configure.Instance.Language}&target={Configure.Instance.UbuntuNetItemTarget}").ConfigureAwait(false); if (twilightWwwComment.HasValue) { var twilightWwwCommentValue = twilightWwwComment.Value; @@ -3065,14 +3065,14 @@ { try { - var taehuiQwilight = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.TaehuiNetFE}/qwilight/qwilight.json"); + var taehuiQwilight = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.TaehuiNetFE}/qwilight/qwilight.json").ConfigureAwait(false); if (taehuiQwilight.HasValue) { var taehuiQwilightValue = taehuiQwilight.Value; var date = Version.Parse(taehuiQwilightValue.date); if (QwilightComponent.Date < date || QwilightComponent.HashText != taehuiQwilightValue.hash) { - SaveQwilight(); + await SaveQwilight(); } else if (!isSilent) { @@ -3083,18 +3083,18 @@ { LanguageSystem.Instance.AlreadyLatestDate, MESSAGEBOX_STYLE.MB_YESNO | MESSAGEBOX_STYLE.MB_ICONQUESTION | MESSAGEBOX_STYLE.MB_DEFBUTTON1, - new Action(r => + new Action(async r => { if (r == MESSAGEBOX_RESULT.IDYES) { - SaveQwilight(); + await SaveQwilight(); } }) } }); } - async void SaveQwilight() + async ValueTask SaveQwilight() { var data = ArrayPool.Shared.Rent(QwilightComponent.SendUnit); var savingBundleItem = new NotifyItem @@ -3112,17 +3112,14 @@ var target = $"{QwilightComponent.TaehuiNetFE}/qwilight/{title}"; using (var wwwClient = new HttpClient()) { - using (var hrm = await wwwClient.GetAsync(target, HttpCompletionOption.ResponseHeadersRead)) - { - savingBundleItem.QuitStatus = hrm.Content.Headers.ContentLength ?? 0L; - } - using (var s = await wwwClient.GetStreamAsync(target)) using (var fs = File.OpenWrite(tmpFileName)) + using (var ts = await wwwClient.GetAsync(target).ConfigureAwait(false)) { + savingBundleItem.QuitStatus = ts.Content.Headers.ContentLength ?? 0L; var length = 0; - while ((length = await s.ReadAsync(data.AsMemory(0, data.Length))) > 0) + while ((length = await (await ts.Content.ReadAsStreamAsync().ConfigureAwait(false)).ReadAsync(data.AsMemory(0, data.Length)).ConfigureAwait(false)) > 0) { - await fs.WriteAsync(data.AsMemory(0, length)); + await fs.WriteAsync(data.AsMemory(0, length)).ConfigureAwait(false); savingBundleItem.LevyingStatus += length; savingBundleItem.NotifyBundleStatus(); } @@ -3202,7 +3199,7 @@ { IsWowLoading = true; - var twilightWwwWow = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/wow"); + var twilightWwwWow = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/wow").ConfigureAwait(false); if (twilightWwwWow.HasValue) { var twilightWwwWowValue = twilightWwwWow.Value; diff --git a/Qwilight/ViewModel/SiteViewModel.cs b/Qwilight/ViewModel/SiteViewModel.cs index 5dba9e2..ca8fc9c 100644 --- a/Qwilight/ViewModel/SiteViewModel.cs +++ b/Qwilight/ViewModel/SiteViewModel.cs @@ -284,7 +284,7 @@ } } - public async void OnEssentialInputLower(KeyEventArgs e) + public async ValueTask OnEssentialInputLower(KeyEventArgs e) { if (e.Key == Key.V && Utility.HasInput(VirtualKey.LeftControl) && string.IsNullOrEmpty(Input)) { diff --git a/Qwilight/ViewModel/VoteViewModel.cs b/Qwilight/ViewModel/VoteViewModel.cs index 7685389..06bef89 100644 --- a/Qwilight/ViewModel/VoteViewModel.cs +++ b/Qwilight/ViewModel/VoteViewModel.cs @@ -87,7 +87,7 @@ { IsVoteGroupLoading = true; - var twilightWwwVotes = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote?voteName={value}"); + var twilightWwwVotes = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote?voteName={value}").ConfigureAwait(false); if (twilightWwwVotes != null && VoteName == value) { Utility.SetUICollection(ComputingValues, twilightWwwVotes.Select(data => new VoteComputing @@ -132,14 +132,11 @@ IsVoteGroupsLoading = true; - var voteNames = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote"); + var voteNames = await TwilightSystem.Instance.GetWwwParallel($"{QwilightComponent.QwilightAPI}/vote").ConfigureAwait(false); if (voteNames != null) { - HandlingUISystem.Instance.HandleParallel(() => - { - Utility.SetUICollection(VoteNames, voteNames); - VoteName = VoteName ?? VoteNames.FirstOrDefault(); - }); + Utility.SetUICollection(VoteNames, voteNames); + HandlingUISystem.Instance.HandleParallel(() => VoteName ??= VoteNames.FirstOrDefault()); } IsVoteGroupsLoading = false;