From 0e6caa136e0cd8ac337d751ecf410db251360188 Mon Sep 17 00:00:00 2001 From: Andrija Stevanovic Date: Sat, 7 Mar 2026 17:51:02 +0100 Subject: [PATCH] cleaned code --- .../Abstract/IWhiteboardAwareContext.cs | 6 ++++++ .../Abstract/MessageBroking/IMessage.cs | 5 +---- .../Common/Message/AddArrow/AddArrowMessage.cs | 5 +++-- .../Common/Message/AddLine/AddLineMessage.cs | 5 +++-- .../Message/AddRectangle/AddRectangleMessage.cs | 5 +++-- .../Message/AddTextShape/AddTextShapeMessage.cs | 5 +++-- .../Common/Message/ErrorMessage/ErrorMessage.cs | 5 +++-- .../Common/Message/MoveShape/MoveShapeMessage.cs | 5 +++-- .../Common/Message/TestMessage/TestMessage.cs | 8 +------- dotnet/AipsRT/Hubs/WhiteboardHub.cs | 2 +- .../AipsRT/Model/Whiteboard/WhiteboardManager.cs | 6 +++--- dotnet/AipsWorker/WorkerService.cs | 14 ++++++++------ front/src/stores/whiteboard.ts | 1 + 13 files changed, 39 insertions(+), 33 deletions(-) create mode 100644 dotnet/AipsCore/Application/Abstract/IWhiteboardAwareContext.cs diff --git a/dotnet/AipsCore/Application/Abstract/IWhiteboardAwareContext.cs b/dotnet/AipsCore/Application/Abstract/IWhiteboardAwareContext.cs new file mode 100644 index 0000000..a391986 --- /dev/null +++ b/dotnet/AipsCore/Application/Abstract/IWhiteboardAwareContext.cs @@ -0,0 +1,6 @@ +namespace AipsCore.Application.Abstract; + +public interface IWhiteboardAwareContext +{ + Guid GetWhiteboardId(); +} \ No newline at end of file diff --git a/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessage.cs b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessage.cs index fcc7fc5..ecade00 100644 --- a/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessage.cs +++ b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessage.cs @@ -1,6 +1,3 @@ namespace AipsCore.Application.Abstract.MessageBroking; -public interface IMessage -{ - Guid? GetWhiteboardId(); -}; \ No newline at end of file +public interface IMessage; \ No newline at end of file diff --git a/dotnet/AipsCore/Application/Common/Message/AddArrow/AddArrowMessage.cs b/dotnet/AipsCore/Application/Common/Message/AddArrow/AddArrowMessage.cs index 3294a15..e9920b7 100644 --- a/dotnet/AipsCore/Application/Common/Message/AddArrow/AddArrowMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/AddArrow/AddArrowMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Models.Shape.Command.CreateArrow; namespace AipsCore.Application.Common.Message.AddArrow; -public record AddArrowMessage(CreateArrowCommand Command) : IMessage +public record AddArrowMessage(CreateArrowCommand Command) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return Guid.Parse(Command.WhiteboardId); } diff --git a/dotnet/AipsCore/Application/Common/Message/AddLine/AddLineMessage.cs b/dotnet/AipsCore/Application/Common/Message/AddLine/AddLineMessage.cs index 36428ef..19060c8 100644 --- a/dotnet/AipsCore/Application/Common/Message/AddLine/AddLineMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/AddLine/AddLineMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Models.Shape.Command.CreateLine; namespace AipsCore.Application.Common.Message.AddLine; -public record AddLineMessage(CreateLineCommand Command) : IMessage +public record AddLineMessage(CreateLineCommand Command) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return Guid.Parse(Command.WhiteboardId); } diff --git a/dotnet/AipsCore/Application/Common/Message/AddRectangle/AddRectangleMessage.cs b/dotnet/AipsCore/Application/Common/Message/AddRectangle/AddRectangleMessage.cs index 75b1410..a406708 100644 --- a/dotnet/AipsCore/Application/Common/Message/AddRectangle/AddRectangleMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/AddRectangle/AddRectangleMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Models.Shape.Command.CreateRectangle; namespace AipsCore.Application.Common.Message.AddRectangle; -public record AddRectangleMessage(CreateRectangleCommand Command) : IMessage +public record AddRectangleMessage(CreateRectangleCommand Command) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return Guid.Parse(Command.WhiteboardId); } diff --git a/dotnet/AipsCore/Application/Common/Message/AddTextShape/AddTextShapeMessage.cs b/dotnet/AipsCore/Application/Common/Message/AddTextShape/AddTextShapeMessage.cs index c6a6127..3366057 100644 --- a/dotnet/AipsCore/Application/Common/Message/AddTextShape/AddTextShapeMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/AddTextShape/AddTextShapeMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Models.Shape.Command.CreateTextShape; namespace AipsCore.Application.Common.Message.AddTextShape; -public record AddTextShapeMessage(CreateTextShapeCommand Command) : IMessage +public record AddTextShapeMessage(CreateTextShapeCommand Command) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return Guid.Parse(Command.WhiteboardId); } diff --git a/dotnet/AipsCore/Application/Common/Message/ErrorMessage/ErrorMessage.cs b/dotnet/AipsCore/Application/Common/Message/ErrorMessage/ErrorMessage.cs index ae77633..18e411e 100644 --- a/dotnet/AipsCore/Application/Common/Message/ErrorMessage/ErrorMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/ErrorMessage/ErrorMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Domain.Common.Validation; namespace AipsCore.Application.Common.Message.ErrorMessage; -public record ErrorMessage(Guid WhiteboardId, ICollection Errors) : IMessage +public record ErrorMessage(Guid WhiteboardId, ICollection Errors) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return WhiteboardId; } diff --git a/dotnet/AipsCore/Application/Common/Message/MoveShape/MoveShapeMessage.cs b/dotnet/AipsCore/Application/Common/Message/MoveShape/MoveShapeMessage.cs index bf3a8d9..8eb27b7 100644 --- a/dotnet/AipsCore/Application/Common/Message/MoveShape/MoveShapeMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/MoveShape/MoveShapeMessage.cs @@ -1,11 +1,12 @@ +using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Models.Shape.Command.MoveShape; namespace AipsCore.Application.Common.Message.MoveShape; -public record MoveShapeMessage(Guid WhiteboardId, MoveShapeCommand Command) : IMessage +public record MoveShapeMessage(Guid WhiteboardId, MoveShapeCommand Command) : IMessage, IWhiteboardAwareContext { - public Guid? GetWhiteboardId() + public Guid GetWhiteboardId() { return WhiteboardId; } diff --git a/dotnet/AipsCore/Application/Common/Message/TestMessage/TestMessage.cs b/dotnet/AipsCore/Application/Common/Message/TestMessage/TestMessage.cs index 710c40a..e6559e6 100644 --- a/dotnet/AipsCore/Application/Common/Message/TestMessage/TestMessage.cs +++ b/dotnet/AipsCore/Application/Common/Message/TestMessage/TestMessage.cs @@ -2,10 +2,4 @@ using AipsCore.Application.Abstract.MessageBroking; namespace AipsCore.Application.Common.Message.TestMessage; -public record TestMessage(string Text) : IMessage -{ - public Guid? GetWhiteboardId() - { - return null; - } -} \ No newline at end of file +public record TestMessage(string Text) : IMessage; \ No newline at end of file diff --git a/dotnet/AipsRT/Hubs/WhiteboardHub.cs b/dotnet/AipsRT/Hubs/WhiteboardHub.cs index 9ff64f8..38e49f7 100644 --- a/dotnet/AipsRT/Hubs/WhiteboardHub.cs +++ b/dotnet/AipsRT/Hubs/WhiteboardHub.cs @@ -25,7 +25,7 @@ public class WhiteboardHub : Hub public async Task JoinWhiteboard(Guid whiteboardId) { if (!_whiteboardManager.WhiteboardExists(whiteboardId)) - await _whiteboardManager.AddWhiteboard(whiteboardId); + await _whiteboardManager.LoadWhiteboard(whiteboardId); await Groups.AddToGroupAsync(Context.ConnectionId, whiteboardId.ToString()); diff --git a/dotnet/AipsRT/Model/Whiteboard/WhiteboardManager.cs b/dotnet/AipsRT/Model/Whiteboard/WhiteboardManager.cs index fcdcac6..99121d6 100644 --- a/dotnet/AipsRT/Model/Whiteboard/WhiteboardManager.cs +++ b/dotnet/AipsRT/Model/Whiteboard/WhiteboardManager.cs @@ -14,7 +14,7 @@ public class WhiteboardManager _scopeFactory = scopeFactory; } - public async Task AddWhiteboard(Guid whiteboardId) + public async Task LoadWhiteboard(Guid whiteboardId) { var getWhiteboardService = _scopeFactory.CreateScope().ServiceProvider.GetRequiredService(); var whiteboard = await getWhiteboardService.GetWhiteboard(whiteboardId); @@ -36,12 +36,12 @@ public class WhiteboardManager { var whiteboard = GetWhiteboard(whiteboardId); - if (whiteboard == null) + if (whiteboard is not null) { RemoveWhiteboard(whiteboardId); } - await AddWhiteboard(whiteboardId); + await LoadWhiteboard(whiteboardId); } public Whiteboard? GetWhiteboard(Guid whiteboardId) diff --git a/dotnet/AipsWorker/WorkerService.cs b/dotnet/AipsWorker/WorkerService.cs index c1c9b4a..b7689ec 100644 --- a/dotnet/AipsWorker/WorkerService.cs +++ b/dotnet/AipsWorker/WorkerService.cs @@ -40,24 +40,26 @@ public class WorkerService : BackgroundService private async Task HandleMessage(T message, CancellationToken ct) where T : IMessage { + Console.WriteLine($"*--------{message.GetType().Name}--------*"); + try { await _dispatcher.Execute(message, ct); - Console.WriteLine($"OK: {message.GetType().Name}"); + Console.WriteLine("OK!"); } catch (ValidationException validationException) { - var whiteboardId = message.GetWhiteboardId(); - - if (whiteboardId is not null) + if (message is IWhiteboardAwareContext) { - var errorMessage = new ErrorMessage(whiteboardId.Value, validationException.ValidationErrors); + var whiteboardId = ((IWhiteboardAwareContext)message).GetWhiteboardId(); + + var errorMessage = new ErrorMessage(whiteboardId, validationException.ValidationErrors); await _publisher.PublishAsync(errorMessage, ct); } - Console.WriteLine("===Validation Exception: "); + Console.WriteLine("Validation Exception: "); foreach (var error in validationException.ValidationErrors) { Console.WriteLine(" * Code: " + error.Code); diff --git a/front/src/stores/whiteboard.ts b/front/src/stores/whiteboard.ts index 758f350..01c7c17 100644 --- a/front/src/stores/whiteboard.ts +++ b/front/src/stores/whiteboard.ts @@ -36,6 +36,7 @@ export const useWhiteboardStore = defineStore('whiteboard', () => { isConnected.value = true whiteboardHubService.onInitWhiteboard((wb) => { + deselectShape() whiteboard.value = wb isLoading.value = false })