cleaned code

This commit is contained in:
2026-03-07 17:51:02 +01:00
parent 49aed2493a
commit 0e6caa136e
13 changed files with 39 additions and 33 deletions

View File

@@ -0,0 +1,6 @@
namespace AipsCore.Application.Abstract;
public interface IWhiteboardAwareContext
{
Guid GetWhiteboardId();
}

View File

@@ -1,6 +1,3 @@
namespace AipsCore.Application.Abstract.MessageBroking; namespace AipsCore.Application.Abstract.MessageBroking;
public interface IMessage public interface IMessage;
{
Guid? GetWhiteboardId();
};

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Application.Models.Shape.Command.CreateArrow; using AipsCore.Application.Models.Shape.Command.CreateArrow;
namespace AipsCore.Application.Common.Message.AddArrow; 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); return Guid.Parse(Command.WhiteboardId);
} }

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Application.Models.Shape.Command.CreateLine; using AipsCore.Application.Models.Shape.Command.CreateLine;
namespace AipsCore.Application.Common.Message.AddLine; 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); return Guid.Parse(Command.WhiteboardId);
} }

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Application.Models.Shape.Command.CreateRectangle; using AipsCore.Application.Models.Shape.Command.CreateRectangle;
namespace AipsCore.Application.Common.Message.AddRectangle; 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); return Guid.Parse(Command.WhiteboardId);
} }

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Application.Models.Shape.Command.CreateTextShape; using AipsCore.Application.Models.Shape.Command.CreateTextShape;
namespace AipsCore.Application.Common.Message.AddTextShape; 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); return Guid.Parse(Command.WhiteboardId);
} }

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Domain.Common.Validation; using AipsCore.Domain.Common.Validation;
namespace AipsCore.Application.Common.Message.ErrorMessage; namespace AipsCore.Application.Common.Message.ErrorMessage;
public record ErrorMessage(Guid WhiteboardId, ICollection<ValidationError> Errors) : IMessage public record ErrorMessage(Guid WhiteboardId, ICollection<ValidationError> Errors) : IMessage, IWhiteboardAwareContext
{ {
public Guid? GetWhiteboardId() public Guid GetWhiteboardId()
{ {
return WhiteboardId; return WhiteboardId;
} }

View File

@@ -1,11 +1,12 @@
using AipsCore.Application.Abstract;
using AipsCore.Application.Abstract.MessageBroking; using AipsCore.Application.Abstract.MessageBroking;
using AipsCore.Application.Models.Shape.Command.MoveShape; using AipsCore.Application.Models.Shape.Command.MoveShape;
namespace AipsCore.Application.Common.Message.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; return WhiteboardId;
} }

View File

@@ -2,10 +2,4 @@ using AipsCore.Application.Abstract.MessageBroking;
namespace AipsCore.Application.Common.Message.TestMessage; namespace AipsCore.Application.Common.Message.TestMessage;
public record TestMessage(string Text) : IMessage public record TestMessage(string Text) : IMessage;
{
public Guid? GetWhiteboardId()
{
return null;
}
}

View File

@@ -25,7 +25,7 @@ public class WhiteboardHub : Hub
public async Task JoinWhiteboard(Guid whiteboardId) public async Task JoinWhiteboard(Guid whiteboardId)
{ {
if (!_whiteboardManager.WhiteboardExists(whiteboardId)) if (!_whiteboardManager.WhiteboardExists(whiteboardId))
await _whiteboardManager.AddWhiteboard(whiteboardId); await _whiteboardManager.LoadWhiteboard(whiteboardId);
await Groups.AddToGroupAsync(Context.ConnectionId, whiteboardId.ToString()); await Groups.AddToGroupAsync(Context.ConnectionId, whiteboardId.ToString());

View File

@@ -14,7 +14,7 @@ public class WhiteboardManager
_scopeFactory = scopeFactory; _scopeFactory = scopeFactory;
} }
public async Task AddWhiteboard(Guid whiteboardId) public async Task LoadWhiteboard(Guid whiteboardId)
{ {
var getWhiteboardService = _scopeFactory.CreateScope().ServiceProvider.GetRequiredService<GetWhiteboardService>(); var getWhiteboardService = _scopeFactory.CreateScope().ServiceProvider.GetRequiredService<GetWhiteboardService>();
var whiteboard = await getWhiteboardService.GetWhiteboard(whiteboardId); var whiteboard = await getWhiteboardService.GetWhiteboard(whiteboardId);
@@ -36,12 +36,12 @@ public class WhiteboardManager
{ {
var whiteboard = GetWhiteboard(whiteboardId); var whiteboard = GetWhiteboard(whiteboardId);
if (whiteboard == null) if (whiteboard is not null)
{ {
RemoveWhiteboard(whiteboardId); RemoveWhiteboard(whiteboardId);
} }
await AddWhiteboard(whiteboardId); await LoadWhiteboard(whiteboardId);
} }
public Whiteboard? GetWhiteboard(Guid whiteboardId) public Whiteboard? GetWhiteboard(Guid whiteboardId)

View File

@@ -40,24 +40,26 @@ public class WorkerService : BackgroundService
private async Task HandleMessage<T>(T message, CancellationToken ct) where T : IMessage private async Task HandleMessage<T>(T message, CancellationToken ct) where T : IMessage
{ {
Console.WriteLine($"*--------{message.GetType().Name}--------*");
try try
{ {
await _dispatcher.Execute(message, ct); await _dispatcher.Execute(message, ct);
Console.WriteLine($"OK: {message.GetType().Name}"); Console.WriteLine("OK!");
} }
catch (ValidationException validationException) catch (ValidationException validationException)
{ {
var whiteboardId = message.GetWhiteboardId(); if (message is IWhiteboardAwareContext)
if (whiteboardId is not null)
{ {
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); await _publisher.PublishAsync(errorMessage, ct);
} }
Console.WriteLine("===Validation Exception: "); Console.WriteLine("Validation Exception: ");
foreach (var error in validationException.ValidationErrors) foreach (var error in validationException.ValidationErrors)
{ {
Console.WriteLine(" * Code: " + error.Code); Console.WriteLine(" * Code: " + error.Code);

View File

@@ -36,6 +36,7 @@ export const useWhiteboardStore = defineStore('whiteboard', () => {
isConnected.value = true isConnected.value = true
whiteboardHubService.onInitWhiteboard((wb) => { whiteboardHubService.onInitWhiteboard((wb) => {
deselectShape()
whiteboard.value = wb whiteboard.value = wb
isLoading.value = false isLoading.value = false
}) })