diff --git a/Compile.ps1 b/Compile.ps1 old mode 100644 new mode 100755 diff --git a/Dev/Dev2.Studio.Interfaces/IShellViewModel.cs b/Dev/Dev2.Studio.Interfaces/IShellViewModel.cs index 90a0f9a678b..a5a6ae5274e 100644 --- a/Dev/Dev2.Studio.Interfaces/IShellViewModel.cs +++ b/Dev/Dev2.Studio.Interfaces/IShellViewModel.cs @@ -177,5 +177,6 @@ public interface IShellViewModel : IShellViewModelEdit, IShellViewModelNew, IShe ISubscriptionData SubscriptionData { get; } void UpdateStudioLicense(bool isLicensed); + void ShowAIChat(); } } diff --git a/Dev/Dev2.Studio/Services/AIService.cs b/Dev/Dev2.Studio/Services/AIService.cs new file mode 100644 index 00000000000..fedb26bb24f --- /dev/null +++ b/Dev/Dev2.Studio/Services/AIService.cs @@ -0,0 +1,10 @@ +namespace Dev2.Studio.Services +{ + public class AIService + { + public string GetResponse(string prompt) + { + return "This is a response from the AI service."; + } + } +} diff --git a/Dev/Dev2.Studio/ViewModels/AIChatViewModel.cs b/Dev/Dev2.Studio/ViewModels/AIChatViewModel.cs new file mode 100644 index 00000000000..4010e7cb08e --- /dev/null +++ b/Dev/Dev2.Studio/ViewModels/AIChatViewModel.cs @@ -0,0 +1,54 @@ +using System.Collections.ObjectModel; +using System.Windows.Input; +using Dev2.Studio.Core.ViewModels.Base; + +namespace Dev2.Studio.ViewModels +{ + public class AIChatViewModel : Screen + { + private string _message; + private ObservableCollection _messages; + private ICommand _sendCommand; + + public AIChatViewModel() + { + DisplayName = "AI Chat"; + Messages = new ObservableCollection(); + } + + public string Message + { + get => _message; + set + { + _message = value; + NotifyOfPropertyChange(() => Message); + } + } + + public ObservableCollection Messages + { + get => _messages; + set + { + _messages = value; + NotifyOfPropertyChange(() => Messages); + } + } + + public ICommand SendCommand + { + get + { + return _sendCommand ?? (_sendCommand = new RelayCommand(param => + { + Messages.Add("You: " + Message); + var aiService = new Services.AIService(); + var response = aiService.GetResponse(Message); + Messages.Add("AI: " + response); + Message = string.Empty; + })); + } + } + } +} diff --git a/Dev/Dev2.Studio/ViewModels/ShellViewModel.cs b/Dev/Dev2.Studio/ViewModels/ShellViewModel.cs index ede19fcc00d..4ef2b12b14e 100644 --- a/Dev/Dev2.Studio/ViewModels/ShellViewModel.cs +++ b/Dev/Dev2.Studio/ViewModels/ShellViewModel.cs @@ -563,6 +563,11 @@ public ICommand MergeCommand })); } + public void ShowAIChat() + { + _worksurfaceContextManager.AddWorkSurface(new AIChatViewModel()); + } + public IVersionChecker Version { get; } public ShellViewModel() diff --git a/Dev/Dev2.Studio/Views/AIChatView.xaml b/Dev/Dev2.Studio/Views/AIChatView.xaml new file mode 100644 index 00000000000..3ec26f41a83 --- /dev/null +++ b/Dev/Dev2.Studio/Views/AIChatView.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + +