refactor: cleaup and implemented mvvm

This commit is contained in:
tux
2025-07-05 06:18:00 +05:30
parent 896b2a9f40
commit 7ffdfea18f
13 changed files with 249 additions and 210 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.ClientModel;
using highminded.models;
using OpenAI;
using OpenAI.Chat;
@@ -7,37 +8,45 @@ namespace highminded.utils;
public class InMemoryDb
{
internal ChatClient ChatClient;
internal SettingsManager<AppSettings> SettingsManager;
public static readonly InMemoryDb Obj = new InMemoryDb();
internal readonly SettingsManager<SettingsViewModel> SettingsManager;
internal readonly MainViewModel MainViewModel;
internal readonly ChatViewModel ChatViewModel;
internal readonly SettingsViewModel SettingsViewModel;
internal ChatClient? ChatClient;
// Initialize Singleton Class
private InMemoryDb()
{
SettingsManager = new SettingsManager<AppSettings>();
if (SettingsManager.Settings.ApiKey != null)
SettingsManager = new SettingsManager<SettingsViewModel>();
MainViewModel = new MainViewModel();
ChatViewModel = new ChatViewModel();
SettingsViewModel = new SettingsViewModel();
SettingsViewModel = SettingsManager.Settings;
if (SettingsManager.Settings.ApiKey != string.Empty)
{
InitOpenAIClient();
InitOpenAiClient();
}
}
public void InitOpenAIClient()
public void SaveSettings()
{
SettingsManager.Save();
InitOpenAiClient();
}
private void InitOpenAiClient()
{
ChatClient = new ChatClient(
model: SettingsManager.Settings.Model,
credential: new ApiKeyCredential(SettingsManager.Settings.ApiKey),
options: new OpenAIClientOptions
{
Endpoint = new Uri(SettingsManager.Settings.ApiURL)
Endpoint = new Uri(SettingsManager.Settings.ApiUrl)
}
);
}
public void SaveSettings(AppSettings settings)
{
SettingsManager.Settings = settings;
SettingsManager.Save();
InitOpenAIClient();
}
public static readonly InMemoryDb Obj = new InMemoryDb();
}