Fixed bugs related to the workspaces component (#228)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2024-12-04 11:44:12 +01:00
1 parent 55d7895f58
commit 61f7a3dd72
3 files changed
+50 -21

No files matched your search

@@ -3,6 +3,7 @@ using System.Text.Json;
using System.Text.Json.Serialization;
using AIStudio.Chat;
using AIStudio.Dialogs;
using AIStudio.Settings;
namespace AIStudio.Tools;
@@ -81,4 +82,39 @@ public static class WorkspaceBehaviour
var workspaceNamePath = Path.Join(workspacePath, "name");
return await File.ReadAllTextAsync(workspaceNamePath, Encoding.UTF8);
}
public static async Task DeleteChat(IDialogService dialogService, Guid workspaceId, Guid chatId, bool askForConfirmation = true)
{
var chat = await LoadChat(new(workspaceId, chatId));
if (chat is null)
return;
if (askForConfirmation)
{
var workspaceName = await LoadWorkspaceName(chat.WorkspaceId);
var dialogParameters = new DialogParameters
{
{
"Message", (chat.WorkspaceId == Guid.Empty) switch
{
true => $"Are you sure you want to delete the temporary chat '{chat.Name}'?",
false => $"Are you sure you want to delete the chat '{chat.Name}' in the workspace '{workspaceName}'?",
}
},
};
var dialogReference = await dialogService.ShowAsync<ConfirmDialog>("Delete Chat", dialogParameters, Dialogs.DialogOptions.FULLSCREEN);
var dialogResult = await dialogReference.Result;
if (dialogResult is null || dialogResult.Canceled)
return;
}
string chatDirectory;
if (chat.WorkspaceId == Guid.Empty)
chatDirectory = Path.Join(SettingsManager.DataDirectory, "tempChats", chat.ChatId.ToString());
else
chatDirectory = Path.Join(SettingsManager.DataDirectory, "workspaces", chat.WorkspaceId.ToString(), chat.ChatId.ToString());
Directory.Delete(chatDirectory, true);
}
}