feat: wip on remove config command

This commit is contained in:
Stevan Freeborn
2025-03-08 19:31:56 -06:00
parent 22eb9a7c87
commit 5647070fd3
9 changed files with 102 additions and 55 deletions
+38
View File
@@ -0,0 +1,38 @@
namespace AltGen.Console.Config;
record AppSettings(ProviderSettings[] Providers)
{
public AppSettings AddOrUpdateProvider(AddConfigCommand.Settings settings)
{
var updatedProviders = Providers.Select(p =>
{
if (p.Provider == settings.Provider)
{
return p with { Key = settings.Key, Default = settings.Default };
}
if (p.Provider != settings.Provider && settings.Default)
{
return p with { Default = false };
}
return p;
});
var provider = Providers.FirstOrDefault(p => p.Provider == settings.Provider);
if (provider is null)
{
var newProvider = new ProviderSettings(settings.Provider, settings.Key, settings.Default);
return this with { Providers = [.. updatedProviders, newProvider] };
}
return this with { Providers = [.. updatedProviders] };
}
public AppSettings RemoveProvider(RemoveConfigCommand.Settings settings)
{
var updatedProviders = Providers.Where(p => p.Provider != settings.Provider);
return this with { Providers = [.. updatedProviders] };
}
}