diff --git a/dotnet/AipsCore/Domain/Abstract/DomainEntity.cs b/dotnet/AipsCore/Domain/Abstract/DomainModel.cs similarity index 79% rename from dotnet/AipsCore/Domain/Abstract/DomainEntity.cs rename to dotnet/AipsCore/Domain/Abstract/DomainModel.cs index 90a43b5..895b030 100644 --- a/dotnet/AipsCore/Domain/Abstract/DomainEntity.cs +++ b/dotnet/AipsCore/Domain/Abstract/DomainModel.cs @@ -2,18 +2,18 @@ using AipsCore.Domain.Common.ValueObjects; namespace AipsCore.Domain.Abstract; -public abstract class DomainEntity where TId : DomainId +public abstract class DomainModel where TId : DomainId { private readonly List _domainEvents = []; public TId Id { get; init; } - protected DomainEntity() + protected DomainModel() { } - protected DomainEntity(TId id) + protected DomainModel(TId id) { Id = id; } diff --git a/dotnet/AipsCore/Domain/Abstract/IAbstractRepository.cs b/dotnet/AipsCore/Domain/Abstract/IAbstractRepository.cs index c41fbd6..ced48c2 100644 --- a/dotnet/AipsCore/Domain/Abstract/IAbstractRepository.cs +++ b/dotnet/AipsCore/Domain/Abstract/IAbstractRepository.cs @@ -2,11 +2,11 @@ using AipsCore.Domain.Common.ValueObjects; namespace AipsCore.Domain.Abstract; -public interface IAbstractRepository - where TEntity : DomainEntity +public interface IAbstractRepository + where TModel : DomainModel where TId : DomainId { - Task GetByIdAsync(TId id, CancellationToken cancellationToken = default); - Task SaveAsync(TEntity entity, CancellationToken cancellationToken = default); - Task AddAsync(TEntity entity, CancellationToken cancellationToken = default); + Task GetByIdAsync(TId id, CancellationToken cancellationToken = default); + Task SaveAsync(TModel model, CancellationToken cancellationToken = default); + Task AddAsync(TModel model, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/dotnet/AipsCore/Domain/Models/Shape/Shape.cs b/dotnet/AipsCore/Domain/Models/Shape/Shape.cs index 4c78ec8..e9050ac 100644 --- a/dotnet/AipsCore/Domain/Models/Shape/Shape.cs +++ b/dotnet/AipsCore/Domain/Models/Shape/Shape.cs @@ -7,7 +7,7 @@ using AipsCore.Domain.Models.Whiteboard.ValueObjects; namespace AipsCore.Domain.Models.Shape; -public abstract class Shape : DomainEntity +public abstract class Shape : DomainModel { public WhiteboardId WhiteboardId { get; private set; } diff --git a/dotnet/AipsCore/Domain/Models/User/User.cs b/dotnet/AipsCore/Domain/Models/User/User.cs index d1da7fa..5b113cd 100644 --- a/dotnet/AipsCore/Domain/Models/User/User.cs +++ b/dotnet/AipsCore/Domain/Models/User/User.cs @@ -4,7 +4,7 @@ using AipsCore.Domain.Models.User.ValueObjects; namespace AipsCore.Domain.Models.User; -public class User : DomainEntity +public class User : DomainModel { public Email Email { get; private set; } public Username Username { get; private set; } diff --git a/dotnet/AipsCore/Domain/Models/Whiteboard/Whiteboard.cs b/dotnet/AipsCore/Domain/Models/Whiteboard/Whiteboard.cs index 2ddd4cc..b774510 100644 --- a/dotnet/AipsCore/Domain/Models/Whiteboard/Whiteboard.cs +++ b/dotnet/AipsCore/Domain/Models/Whiteboard/Whiteboard.cs @@ -5,7 +5,7 @@ using AipsCore.Domain.Models.Whiteboard.ValueObjects; namespace AipsCore.Domain.Models.Whiteboard; -public class Whiteboard : DomainEntity +public class Whiteboard : DomainModel { public UserId WhiteboardOwnerId { get; private set; } public WhiteboardCode Code { get; private set; } diff --git a/dotnet/AipsCore/Domain/Models/WhiteboardMembership/WhiteboardMembership.cs b/dotnet/AipsCore/Domain/Models/WhiteboardMembership/WhiteboardMembership.cs index c8043b6..9cc612b 100644 --- a/dotnet/AipsCore/Domain/Models/WhiteboardMembership/WhiteboardMembership.cs +++ b/dotnet/AipsCore/Domain/Models/WhiteboardMembership/WhiteboardMembership.cs @@ -5,7 +5,7 @@ using AipsCore.Domain.Models.WhiteboardMembership.ValueObjects; namespace AipsCore.Domain.Models.WhiteboardMembership; -public class WhiteboardMembership : DomainEntity +public class WhiteboardMembership : DomainModel { public WhiteboardId WhiteboardId { get; private set; } public UserId UserId { get; private set; } diff --git a/dotnet/AipsCore/Infrastructure/Persistence/Abstract/AbstractRepository.cs b/dotnet/AipsCore/Infrastructure/Persistence/Abstract/AbstractRepository.cs index e62137c..8d1195e 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/Abstract/AbstractRepository.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/Abstract/AbstractRepository.cs @@ -5,51 +5,51 @@ using Microsoft.EntityFrameworkCore; namespace AipsCore.Infrastructure.Persistence.Abstract; -public abstract class AbstractRepository : IAbstractRepository - where TEntity : DomainEntity +public abstract class AbstractRepository : IAbstractRepository + where TModel : DomainModel where TId : DomainId - where TPersistenceEntity : class + where TEntity : class { protected readonly AipsDbContext Context; - protected readonly DbSet DbSet; + protected readonly DbSet DbSet; protected AbstractRepository(AipsDbContext context) { Context = context; - DbSet = Context.Set(); + DbSet = Context.Set(); } - public async Task GetByIdAsync(TId id, CancellationToken cancellationToken = default) + public async Task GetByIdAsync(TId id, CancellationToken cancellationToken = default) { - var persistenceEntity = await DbSet.FindAsync([new Guid(id.IdValue)], cancellationToken); + var entity = await DbSet.FindAsync([new Guid(id.IdValue)], cancellationToken); - return persistenceEntity != null ? MapToDomainEntity(persistenceEntity) : null; + return entity != null ? MapToModel(entity) : null; } - public async Task SaveAsync(TEntity entity, CancellationToken cancellationToken = default) + public async Task SaveAsync(TModel model, CancellationToken cancellationToken = default) { - var persistenceEntity = await DbSet.FindAsync([new Guid(entity.Id.IdValue)], cancellationToken); + var entity = await DbSet.FindAsync([new Guid(model.Id.IdValue)], cancellationToken); - if (persistenceEntity == null) + if (entity == null) { - persistenceEntity = MapToPersistenceEntity(entity); - await DbSet.AddAsync(persistenceEntity, cancellationToken); + entity = MapToEntity(model); + await DbSet.AddAsync(entity, cancellationToken); } else { - UpdatePersistenceEntity(persistenceEntity, entity); - DbSet.Update(persistenceEntity); + UpdateEntity(entity, model); + DbSet.Update(entity); } } - public async Task AddAsync(TEntity entity, CancellationToken cancellationToken = default) + public async Task AddAsync(TModel model, CancellationToken cancellationToken = default) { - var persistenceEntity = MapToPersistenceEntity(entity); + var entity = MapToEntity(model); - await DbSet.AddAsync(persistenceEntity, cancellationToken); + await DbSet.AddAsync(entity, cancellationToken); } - protected abstract TEntity MapToDomainEntity(TPersistenceEntity persistenceEntity); - protected abstract TPersistenceEntity MapToPersistenceEntity(TEntity domainEntity); - protected abstract void UpdatePersistenceEntity(TPersistenceEntity persistenceEntity, TEntity domainEntity); + protected abstract TModel MapToModel(TEntity entity); + protected abstract TEntity MapToEntity(TModel model); + protected abstract void UpdateEntity(TEntity entity, TModel model); } \ No newline at end of file diff --git a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.FromEntity.cs b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.FromEntity.cs index 70a2a73..9089d01 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.FromEntity.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.FromEntity.cs @@ -8,19 +8,19 @@ namespace AipsCore.Infrastructure.Persistence.Shape.Mappers; public static partial class ShapeMappers { - public static Domain.Models.Shape.Shape MapToDomainEntity(Shape shape) + public static Domain.Models.Shape.Shape MapToEntity(Shape shape) { return shape.Type switch { - ShapeType.Rectangle => PersistenceEntityToRectangle(shape), - ShapeType.Line => PersistenceEntityToLine(shape), - ShapeType.Arrow => PersistenceEntityToArrow(shape), - ShapeType.Text => PersistenceEntityToTextShape(shape), + ShapeType.Rectangle => EntityToRectangle(shape), + ShapeType.Line => EntityToLine(shape), + ShapeType.Arrow => EntityToArrow(shape), + ShapeType.Text => EntityToTextShape(shape), _ => throw new ArgumentOutOfRangeException() }; } - private static Rectangle PersistenceEntityToRectangle(Shape shape) + public static Rectangle EntityToRectangle(Shape shape) { return Rectangle.Create( shape.Id.ToString(), @@ -31,7 +31,7 @@ public static partial class ShapeMappers shape.Thickness!.Value); } - private static Line PersistenceEntityToLine(Shape shape) + public static Line EntityToLine(Shape shape) { return Line.Create( shape.Id.ToString(), @@ -43,7 +43,7 @@ public static partial class ShapeMappers shape.Thickness!.Value); } - private static Arrow PersistenceEntityToArrow(Shape shape) + public static Arrow EntityToArrow(Shape shape) { return Arrow.Create( shape.Id.ToString(), @@ -55,7 +55,7 @@ public static partial class ShapeMappers shape.Thickness!.Value); } - private static TextShape PersistenceEntityToTextShape(Shape shape) + public static TextShape EntityToTextShape(Shape shape) { return TextShape.Create( shape.Id.ToString(), diff --git a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.ToEntity.cs b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.ToEntity.cs index 3229acf..6275364 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.ToEntity.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.ToEntity.cs @@ -9,19 +9,19 @@ namespace AipsCore.Infrastructure.Persistence.Shape.Mappers; public static partial class ShapeMappers { - public static Shape MapToPersistenceEntity(Domain.Models.Shape.Shape model) + public static Shape MapToEntity(Domain.Models.Shape.Shape model) { return model.ShapeType switch { - ShapeType.Rectangle => RectangleToPersistenceEntity((Rectangle)model), - ShapeType.Line => LineToPersistenceEntity((Line)model), - ShapeType.Arrow => ArrowToPersistenceEntity((Arrow)model), - ShapeType.Text => TextShapeToPersistenceEntity((TextShape)model), + ShapeType.Rectangle => RectangleToEntity((Rectangle)model), + ShapeType.Line => LineToEntity((Line)model), + ShapeType.Arrow => ArrowToEntity((Arrow)model), + ShapeType.Text => TextShapeToEntity((TextShape)model), _ => throw new ArgumentOutOfRangeException() }; } - private static Shape RectangleToPersistenceEntity(Rectangle rectangle) + public static Shape RectangleToEntity(Rectangle rectangle) { return new Shape { @@ -38,7 +38,7 @@ public static partial class ShapeMappers }; } - private static Shape LineToPersistenceEntity(Line line) + public static Shape LineToEntity(Line line) { return new Shape { @@ -55,7 +55,7 @@ public static partial class ShapeMappers }; } - private static Shape ArrowToPersistenceEntity(Arrow arrow) + public static Shape ArrowToEntity(Arrow arrow) { return new Shape { @@ -72,7 +72,7 @@ public static partial class ShapeMappers }; } - private static Shape TextShapeToPersistenceEntity(TextShape textShape) + public static Shape TextShapeToEntity(TextShape textShape) { return new Shape { diff --git a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.UpdateEntity.cs b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.UpdateEntity.cs index 33720ca..e1e04a1 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.UpdateEntity.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/Shape/Mappers/ShapeMappers.UpdateEntity.cs @@ -8,7 +8,7 @@ namespace AipsCore.Infrastructure.Persistence.Shape.Mappers; public static partial class ShapeMappers { - public static void UpdatePersistenceEntity(Shape entity, Domain.Models.Shape.Shape model) + public static void UpdateEntity(Shape entity, Domain.Models.Shape.Shape model) { entity.WhiteboardId = new Guid(model.WhiteboardId.IdValue); entity.PositionX = model.Position.X; @@ -32,28 +32,28 @@ public static partial class ShapeMappers }; } - private static void UpdateEntityFromRectangle(Shape entity, Rectangle rectangle) + public static void UpdateEntityFromRectangle(Shape entity, Rectangle rectangle) { entity.EndPositionX = rectangle.EndPosition.X; entity.EndPositionY = rectangle.EndPosition.Y; entity.Thickness = rectangle.BorderThickness.Value; } - private static void UpdateEntityFromLine(Shape entity, Line line) + public static void UpdateEntityFromLine(Shape entity, Line line) { entity.EndPositionX = line.EndPosition.X; entity.EndPositionY = line.EndPosition.Y; entity.Thickness = line.Thickness.Value; } - private static void UpdateEntityFromArrow(Shape entity, Arrow arrow) + public static void UpdateEntityFromArrow(Shape entity, Arrow arrow) { entity.EndPositionX = arrow.EndPosition.X; entity.EndPositionY = arrow.EndPosition.Y; entity.Thickness = arrow.Thickness.Value; } - private static void UpdateEntityFromTextShape(Shape entity, TextShape textShape) + public static void UpdateEntityFromTextShape(Shape entity, TextShape textShape) { entity.TextValue = textShape.TextShapeValue.Text; entity.TextSize = textShape.TextShapeSize.Size; diff --git a/dotnet/AipsCore/Infrastructure/Persistence/Shape/ShapeRepository.cs b/dotnet/AipsCore/Infrastructure/Persistence/Shape/ShapeRepository.cs index 9d4fc12..5307714 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/Shape/ShapeRepository.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/Shape/ShapeRepository.cs @@ -14,18 +14,18 @@ public class ShapeRepository : AbstractRepository WhiteboardCodeExists(WhiteboardCode whiteboardCode) diff --git a/dotnet/AipsCore/Infrastructure/Persistence/WhiteboardMembership/WhiteboardMembershipRepository.cs b/dotnet/AipsCore/Infrastructure/Persistence/WhiteboardMembership/WhiteboardMembershipRepository.cs index aeaccaf..89e97aa 100644 --- a/dotnet/AipsCore/Infrastructure/Persistence/WhiteboardMembership/WhiteboardMembershipRepository.cs +++ b/dotnet/AipsCore/Infrastructure/Persistence/WhiteboardMembership/WhiteboardMembershipRepository.cs @@ -15,38 +15,38 @@ public class WhiteboardMembershipRepository } - protected override Domain.Models.WhiteboardMembership.WhiteboardMembership MapToDomainEntity(WhiteboardMembership persistenceEntity) + protected override Domain.Models.WhiteboardMembership.WhiteboardMembership MapToModel(WhiteboardMembership entity) { return Domain.Models.WhiteboardMembership.WhiteboardMembership.Create( - persistenceEntity.Id.ToString(), - persistenceEntity.WhiteboardId.ToString(), - persistenceEntity.UserId.ToString(), - persistenceEntity.IsBanned, - persistenceEntity.EditingEnabled, - persistenceEntity.CanJoin, - persistenceEntity.LastInteractedAt + entity.Id.ToString(), + entity.WhiteboardId.ToString(), + entity.UserId.ToString(), + entity.IsBanned, + entity.EditingEnabled, + entity.CanJoin, + entity.LastInteractedAt ); } - protected override WhiteboardMembership MapToPersistenceEntity(Domain.Models.WhiteboardMembership.WhiteboardMembership domainEntity) + protected override WhiteboardMembership MapToEntity(Domain.Models.WhiteboardMembership.WhiteboardMembership model) { return new WhiteboardMembership { - Id = new Guid(domainEntity.Id.IdValue), - WhiteboardId = new Guid(domainEntity.WhiteboardId.IdValue), - UserId = new Guid(domainEntity.UserId.IdValue), - IsBanned = domainEntity.IsBanned.IsBannedValue, - EditingEnabled = domainEntity.EditingEnabled.EditingEnabledValue, - CanJoin = domainEntity.CanJoin.CanJoinValue, - LastInteractedAt = domainEntity.LastInteractedAt.LastInteractedAtValue + Id = new Guid(model.Id.IdValue), + WhiteboardId = new Guid(model.WhiteboardId.IdValue), + UserId = new Guid(model.UserId.IdValue), + IsBanned = model.IsBanned.IsBannedValue, + EditingEnabled = model.EditingEnabled.EditingEnabledValue, + CanJoin = model.CanJoin.CanJoinValue, + LastInteractedAt = model.LastInteractedAt.LastInteractedAtValue }; } - protected override void UpdatePersistenceEntity(WhiteboardMembership persistenceEntity, Domain.Models.WhiteboardMembership.WhiteboardMembership domainEntity) + protected override void UpdateEntity(WhiteboardMembership entity, Domain.Models.WhiteboardMembership.WhiteboardMembership model) { - persistenceEntity.IsBanned = domainEntity.IsBanned.IsBannedValue; - persistenceEntity.EditingEnabled = domainEntity.EditingEnabled.EditingEnabledValue; - persistenceEntity.CanJoin = domainEntity.CanJoin.CanJoinValue; - persistenceEntity.LastInteractedAt = domainEntity.LastInteractedAt.LastInteractedAtValue; + entity.IsBanned = model.IsBanned.IsBannedValue; + entity.EditingEnabled = model.EditingEnabled.EditingEnabledValue; + entity.CanJoin = model.CanJoin.CanJoinValue; + entity.LastInteractedAt = model.LastInteractedAt.LastInteractedAtValue; } } \ No newline at end of file