From 18718a6c475a1d468a42520c11f7d21e1e110aa0 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Thu, 22 Aug 2024 21:27:16 +0200 Subject: [PATCH] Refactored the "send to" implementation of assistants (#85) --- .../Assistants/AssistantBase.razor.cs | 23 ++-------- app/MindWork AI Studio/Tools/SendToData.cs | 3 ++ .../Tools/SendToExtensions.cs | 43 ++++++++++++------- .../wwwroot/changelog/v0.8.12.md | 3 +- 4 files changed, 37 insertions(+), 35 deletions(-) create mode 100644 app/MindWork AI Studio/Tools/SendToData.cs diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs index 331c559..e101da6 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs @@ -179,34 +179,19 @@ public abstract partial class AssistantBase : ComponentBase }, }; - var (eventItem, path) = destination switch - { - SendTo.AGENDA_ASSISTANT => (Event.SEND_TO_AGENDA_ASSISTANT, Routes.ASSISTANT_AGENDA), - SendTo.CODING_ASSISTANT => (Event.SEND_TO_CODING_ASSISTANT, Routes.ASSISTANT_CODING), - SendTo.REWRITE_ASSISTANT => (Event.SEND_TO_REWRITE_ASSISTANT, Routes.ASSISTANT_REWRITE), - SendTo.EMAIL_ASSISTANT => (Event.SEND_TO_EMAIL_ASSISTANT, Routes.ASSISTANT_EMAIL), - SendTo.TRANSLATION_ASSISTANT => (Event.SEND_TO_TRANSLATION_ASSISTANT, Routes.ASSISTANT_TRANSLATION), - SendTo.ICON_FINDER_ASSISTANT => (Event.SEND_TO_ICON_FINDER_ASSISTANT, Routes.ASSISTANT_ICON_FINDER), - SendTo.GRAMMAR_SPELLING_ASSISTANT => (Event.SEND_TO_GRAMMAR_SPELLING_ASSISTANT, Routes.ASSISTANT_GRAMMAR_SPELLING), - SendTo.TEXT_SUMMARIZER_ASSISTANT => (Event.SEND_TO_TEXT_SUMMARIZER_ASSISTANT, Routes.ASSISTANT_SUMMARIZER), - - SendTo.CHAT => (Event.SEND_TO_CHAT, Routes.CHAT), - - _ => (Event.NONE, Routes.ASSISTANTS), - }; - + var sendToData = destination.GetData(); switch (destination) { case SendTo.CHAT: - MessageBus.INSTANCE.DeferMessage(this, eventItem, this.ConvertToChatThread); + MessageBus.INSTANCE.DeferMessage(this, sendToData.Event, this.ConvertToChatThread); break; default: - MessageBus.INSTANCE.DeferMessage(this, eventItem, contentToSend); + MessageBus.INSTANCE.DeferMessage(this, sendToData.Event, contentToSend); break; } - this.NavigationManager.NavigateTo(path); + this.NavigationManager.NavigateTo(sendToData.Route); return Task.CompletedTask; } diff --git a/app/MindWork AI Studio/Tools/SendToData.cs b/app/MindWork AI Studio/Tools/SendToData.cs new file mode 100644 index 0000000..2200208 --- /dev/null +++ b/app/MindWork AI Studio/Tools/SendToData.cs @@ -0,0 +1,3 @@ +namespace AIStudio.Tools; + +public readonly record struct SendToData(Event Event, string Route); \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/SendToExtensions.cs b/app/MindWork AI Studio/Tools/SendToExtensions.cs index 48b78e3..6407dd3 100644 --- a/app/MindWork AI Studio/Tools/SendToExtensions.cs +++ b/app/MindWork AI Studio/Tools/SendToExtensions.cs @@ -2,22 +2,35 @@ namespace AIStudio.Tools; public static class SendToExtensions { - public static string Name(this SendTo assistant) + public static string Name(this SendTo assistant) => assistant switch { - return assistant switch - { - SendTo.GRAMMAR_SPELLING_ASSISTANT => "Grammar & Spelling Assistant", - SendTo.TEXT_SUMMARIZER_ASSISTANT => "Text Summarizer Assistant", - SendTo.ICON_FINDER_ASSISTANT => "Icon Finder Assistant", - SendTo.TRANSLATION_ASSISTANT => "Translation Assistant", - SendTo.REWRITE_ASSISTANT => "Rewrite Assistant", - SendTo.AGENDA_ASSISTANT => "Agenda Assistant", - SendTo.CODING_ASSISTANT => "Coding Assistant", - SendTo.EMAIL_ASSISTANT => "E-Mail Assistant", + SendTo.GRAMMAR_SPELLING_ASSISTANT => "Grammar & Spelling Assistant", + SendTo.TEXT_SUMMARIZER_ASSISTANT => "Text Summarizer Assistant", + SendTo.ICON_FINDER_ASSISTANT => "Icon Finder Assistant", + SendTo.TRANSLATION_ASSISTANT => "Translation Assistant", + SendTo.REWRITE_ASSISTANT => "Rewrite Assistant", + SendTo.AGENDA_ASSISTANT => "Agenda Assistant", + SendTo.CODING_ASSISTANT => "Coding Assistant", + SendTo.EMAIL_ASSISTANT => "E-Mail Assistant", + + SendTo.CHAT => "New Chat", + + _ => "Send to ...", + }; + + public static SendToData GetData(this SendTo destination) => destination switch + { + SendTo.AGENDA_ASSISTANT => new(Event.SEND_TO_AGENDA_ASSISTANT, Routes.ASSISTANT_AGENDA), + SendTo.CODING_ASSISTANT => new(Event.SEND_TO_CODING_ASSISTANT, Routes.ASSISTANT_CODING), + SendTo.REWRITE_ASSISTANT => new(Event.SEND_TO_REWRITE_ASSISTANT, Routes.ASSISTANT_REWRITE), + SendTo.EMAIL_ASSISTANT => new(Event.SEND_TO_EMAIL_ASSISTANT, Routes.ASSISTANT_EMAIL), + SendTo.TRANSLATION_ASSISTANT => new(Event.SEND_TO_TRANSLATION_ASSISTANT, Routes.ASSISTANT_TRANSLATION), + SendTo.ICON_FINDER_ASSISTANT => new(Event.SEND_TO_ICON_FINDER_ASSISTANT, Routes.ASSISTANT_ICON_FINDER), + SendTo.GRAMMAR_SPELLING_ASSISTANT => new(Event.SEND_TO_GRAMMAR_SPELLING_ASSISTANT, Routes.ASSISTANT_GRAMMAR_SPELLING), + SendTo.TEXT_SUMMARIZER_ASSISTANT => new(Event.SEND_TO_TEXT_SUMMARIZER_ASSISTANT, Routes.ASSISTANT_SUMMARIZER), - SendTo.CHAT => "New Chat", + SendTo.CHAT => new(Event.SEND_TO_CHAT, Routes.CHAT), - _ => "Send to ...", - }; - } + _ => new(Event.NONE, Routes.ASSISTANTS), + }; } \ No newline at end of file diff --git a/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md b/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md index 5bfdcbc..23c3716 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v0.8.12.md @@ -2,4 +2,5 @@ - Added an e-mail writing assistant. - Added the possibility to preselect some e-mail writing assistant options. - Improved the content validation for the agenda assistant. -- Improved the language handling of the agenda assistant. \ No newline at end of file +- Improved the language handling of the agenda assistant. +- Refactored the "send to" implementation of assistants. \ No newline at end of file