From 7e71893fe08741826dd5f9700d5ba1100bf8cb53 Mon Sep 17 00:00:00 2001 From: Macintosh II Date: Fri, 22 Sep 2023 19:59:23 +0300 Subject: [PATCH] Resolving issues... Signed-off-by: Macintosh II --- locale/Messages.resx | 6 +++--- locale/Messages.ru.resx | 4 ++-- locale/Messages.tt-ru.resx | 4 ++-- src/Commands/SettingsCommandGroup.cs | 20 ++++++++++++++------ src/Data/Options/IOption.cs | 6 +----- src/Data/Options/Option.cs | 6 ++++++ src/Messages.Designer.cs | 8 ++++---- src/Services/GuildDataService.cs | 1 + 8 files changed, 33 insertions(+), 22 deletions(-) diff --git a/locale/Messages.resx b/locale/Messages.resx index a8d6eea..84d7fa7 100644 --- a/locale/Messages.resx +++ b/locale/Messages.resx @@ -594,10 +594,10 @@ You don't have any reminders created! - - {0} setting has been reset + + Setting {0} reset - + All settings have been reset diff --git a/locale/Messages.ru.resx b/locale/Messages.ru.resx index 7f6b382..abeaf88 100644 --- a/locale/Messages.ru.resx +++ b/locale/Messages.ru.resx @@ -594,10 +594,10 @@ У вас нет созданных напоминаний! - + Настройка {0} сброшена - + Все настройки были сброшены diff --git a/locale/Messages.tt-ru.resx b/locale/Messages.tt-ru.resx index 6b8ae5b..fb01e72 100644 --- a/locale/Messages.tt-ru.resx +++ b/locale/Messages.tt-ru.resx @@ -594,10 +594,10 @@ ты еще не крафтил напоминалки - + {0} откачен к заводским - + откатываемся к заводским... diff --git a/src/Commands/SettingsCommandGroup.cs b/src/Commands/SettingsCommandGroup.cs index c5fd6ac..fb0eb45 100644 --- a/src/Commands/SettingsCommandGroup.cs +++ b/src/Commands/SettingsCommandGroup.cs @@ -261,19 +261,23 @@ public class SettingsCommandGroup : CommandGroup if (setting is not null) { - return await ResetSettingAsync(cfg, currentUser, AllOptions[(int)setting], CancellationToken); + return await ResetSingleSettingAsync(cfg, currentUser, AllOptions[(int)setting], CancellationToken); } return await ResetAllSettingsAsync(cfg, currentUser, CancellationToken); } - private async Task ResetSettingAsync(JsonNode cfg, IUser currentUser, + private async Task ResetSingleSettingAsync(JsonNode cfg, IUser currentUser, IOption option, CancellationToken ct = default) { - option.Reset(cfg); + var resetResult = option.Reset(cfg); + if (!resetResult.IsSuccess) + { + return Result.FromError(resetResult.Error); + } var embed = new EmbedBuilder().WithSmallTitle( - string.Format(Messages.SettingsResetOptional, option.Name), currentUser) + string.Format(Messages.SingleSettingReset, option.Name), currentUser) .WithColour(ColorsList.Green) .Build(); @@ -285,10 +289,14 @@ public class SettingsCommandGroup : CommandGroup { foreach (var option in AllOptions) { - option.Reset(cfg); + var resetResult = option.Reset(cfg); + if (!resetResult.IsSuccess) + { + return Result.FromError(resetResult.Error); + } } - var embed = new EmbedBuilder().WithSmallTitle(Messages.SettingsReset, currentUser) + var embed = new EmbedBuilder().WithSmallTitle(Messages.AllSettingsReset, currentUser) .WithColour(ColorsList.Green) .Build(); diff --git a/src/Data/Options/IOption.cs b/src/Data/Options/IOption.cs index 1ddf5f8..42138dc 100644 --- a/src/Data/Options/IOption.cs +++ b/src/Data/Options/IOption.cs @@ -8,9 +8,5 @@ public interface IOption string Name { get; } string Display(JsonNode settings); Result Set(JsonNode settings, string from); - - public void Reset(JsonNode settings) - { - settings[Name] = null; - } + Result Reset(JsonNode settings); } diff --git a/src/Data/Options/Option.cs b/src/Data/Options/Option.cs index c96b6ac..a62eb04 100644 --- a/src/Data/Options/Option.cs +++ b/src/Data/Options/Option.cs @@ -48,4 +48,10 @@ public class Option : IOption var property = settings[Name]; return property != null ? property.GetValue() : DefaultValue; } + + public Result Reset(JsonNode settings) + { + settings[Name] = null; + return Result.FromSuccess(); + } } diff --git a/src/Messages.Designer.cs b/src/Messages.Designer.cs index b65c668..b45ae70 100644 --- a/src/Messages.Designer.cs +++ b/src/Messages.Designer.cs @@ -1002,15 +1002,15 @@ namespace Boyfriend { } } - internal static string SettingsReset { + internal static string SingleSettingReset { get { - return ResourceManager.GetString("SettingsReset", resourceCulture); + return ResourceManager.GetString("SingleSettingReset", resourceCulture); } } - internal static string SettingsResetOptional { + internal static string AllSettingsReset { get { - return ResourceManager.GetString("SettingsResetOptional", resourceCulture); + return ResourceManager.GetString("AllSettingsReset", resourceCulture); } } } diff --git a/src/Services/GuildDataService.cs b/src/Services/GuildDataService.cs index b07755d..e3c0b96 100644 --- a/src/Services/GuildDataService.cs +++ b/src/Services/GuildDataService.cs @@ -44,6 +44,7 @@ public sealed class GuildDataService : IHostedService public async Task SaveAsync(CancellationToken ct) { + _logger.LogInformation("Saving guild data..."); var tasks = new List(); var datas = _datas.Values.ToArray(); foreach (var data in datas)