feat(01-03): SettingsRepository and SettingsService with write-then-replace

- AppSettings model: DataFolder + Lang with camelCase JSON serialization
- SettingsRepository: SemaphoreSlim write lock + write-then-replace (tmp→validate→move)
- SettingsService: GetSettings/SetLanguage/SetDataFolder; SetLanguage validates en/fr only
- All 8 SettingsServiceTests pass; all 18 Unit tests pass
This commit is contained in:
Dev
2026-04-02 12:12:02 +02:00
parent 769196dabe
commit ac3fa5c8eb
4 changed files with 239 additions and 3 deletions

View File

@@ -0,0 +1,7 @@
namespace SharepointToolbox.Core.Models;
public class AppSettings
{
public string DataFolder { get; set; } = string.Empty;
public string Lang { get; set; } = "en";
}