103 lines
3.3 KiB
C#
103 lines
3.3 KiB
C#
using AipsCore.Application.Abstract.MessageBroking;
|
|
using AipsCore.Application.Common.Message.AddArrow;
|
|
using AipsCore.Application.Common.Message.AddLine;
|
|
using AipsCore.Application.Common.Message.AddRectangle;
|
|
using AipsCore.Application.Common.Message.AddTextShape;
|
|
using AipsCore.Application.Common.Message.MoveShape;
|
|
using AipsCore.Application.Models.Shape.Command.CreateArrow;
|
|
using AipsCore.Application.Models.Shape.Command.CreateLine;
|
|
using AipsCore.Application.Models.Shape.Command.CreateRectangle;
|
|
using AipsCore.Application.Models.Shape.Command.CreateTextShape;
|
|
using AipsCore.Application.Models.Shape.Command.MoveShape;
|
|
using AipsRT.Model.Whiteboard.Shapes;
|
|
using AipsRT.Services.Interfaces;
|
|
|
|
namespace AipsRT.Services;
|
|
|
|
public class MessagingService : IMessagingService
|
|
{
|
|
private readonly IMessagePublisher _messagePublisher;
|
|
|
|
public MessagingService(IMessagePublisher messagePublisher)
|
|
{
|
|
_messagePublisher = messagePublisher;
|
|
}
|
|
|
|
public async Task CreatedRectangle(Guid whiteboardId, Rectangle rectangle)
|
|
{
|
|
var command = new CreateRectangleCommand(
|
|
rectangle.Id.ToString(),
|
|
whiteboardId.ToString(),
|
|
rectangle.OwnerId.ToString(),
|
|
rectangle.Position.X,
|
|
rectangle.Position.Y,
|
|
rectangle.Color,
|
|
rectangle.EndPosition.X,
|
|
rectangle.EndPosition.Y,
|
|
rectangle.BorderThickness
|
|
);
|
|
|
|
var message = new AddRectangleMessage(command);
|
|
|
|
await _messagePublisher.PublishAsync(message);
|
|
}
|
|
|
|
public async Task CreatedArrow(Guid whiteboardId, Arrow arrow)
|
|
{
|
|
var command = new CreateArrowCommand(
|
|
arrow.Id.ToString(),
|
|
whiteboardId.ToString(),
|
|
arrow.OwnerId.ToString(),
|
|
arrow.Position.X,
|
|
arrow.Position.Y,
|
|
arrow.Color,
|
|
arrow.EndPosition.X,
|
|
arrow.EndPosition.Y,
|
|
arrow.Thickness);
|
|
|
|
var message = new AddArrowMessage(command);
|
|
|
|
await _messagePublisher.PublishAsync(message);
|
|
}
|
|
|
|
public async Task CreateLine(Guid whiteboardId, Line line)
|
|
{
|
|
var command = new CreateLineCommand(
|
|
line.Id.ToString(),
|
|
whiteboardId.ToString(),
|
|
line.OwnerId.ToString(),
|
|
line.Position.X,
|
|
line.Position.Y,
|
|
line.Color,
|
|
line.EndPosition.X,
|
|
line.EndPosition.Y,
|
|
line.Thickness);
|
|
|
|
var message = new AddLineMessage(command);
|
|
|
|
await _messagePublisher.PublishAsync(message);
|
|
}
|
|
|
|
public async Task CreateTextShape(Guid whiteboardId, TextShape textShape)
|
|
{
|
|
var command = new CreateTextShapeCommand(
|
|
textShape.Id.ToString(),
|
|
whiteboardId.ToString(),
|
|
textShape.OwnerId.ToString(),
|
|
textShape.Position.X,
|
|
textShape.Position.Y,
|
|
textShape.Color,
|
|
textShape.TextValue,
|
|
textShape.TextSize);
|
|
|
|
var message = new AddTextShapeMessage(command);
|
|
|
|
await _messagePublisher.PublishAsync(message);
|
|
}
|
|
|
|
public async Task MoveShape(MoveShapeCommand moveShape)
|
|
{
|
|
var message = new MoveShapeMessage(moveShape);
|
|
await _messagePublisher.PublishAsync(message);
|
|
}
|
|
} |