From 775be179acd604c2a8ae73635b15962fff1c8eb7 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 10 May 2023 17:00:19 +0300 Subject: [PATCH 1/2] refactor: attachment associations --- .../Users/UpdateUserUniversityIdHandler.cs | 2 +- .../UserAssociations/IsuUserAssociation.cs | 10 +++++++++- .../UserAssociations/UserAssociation.cs | 8 +++++++- .../UserAssociations/IsuUserAssociationGenerator.cs | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/core/Application/ITMO.Dev.ASAP.Application.Handlers/Users/UpdateUserUniversityIdHandler.cs b/src/core/Application/ITMO.Dev.ASAP.Application.Handlers/Users/UpdateUserUniversityIdHandler.cs index b88b892e..65780022 100644 --- a/src/core/Application/ITMO.Dev.ASAP.Application.Handlers/Users/UpdateUserUniversityIdHandler.cs +++ b/src/core/Application/ITMO.Dev.ASAP.Application.Handlers/Users/UpdateUserUniversityIdHandler.cs @@ -28,7 +28,7 @@ public async Task Handle(Command request, CancellationToken cancellationToken) if (association is null) { - association = new IsuUserAssociation(Guid.NewGuid(), user, request.UniversityId); + association = IsuUserAssociation.CreateAndAttach(Guid.NewGuid(), user, request.UniversityId); _context.UserAssociations.Add(association); } else diff --git a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/IsuUserAssociation.cs b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/IsuUserAssociation.cs index c898a83c..e8c3227b 100644 --- a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/IsuUserAssociation.cs +++ b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/IsuUserAssociation.cs @@ -4,10 +4,18 @@ namespace ITMO.Dev.ASAP.Domain.UserAssociations; public partial class IsuUserAssociation : UserAssociation { - public IsuUserAssociation(Guid id, User user, int universityId) : base(id, user) + private IsuUserAssociation(Guid id, User user, int universityId) : base(id, user) { UniversityId = universityId; } public int UniversityId { get; set; } + + public static IsuUserAssociation CreateAndAttach(Guid id, User user, int universityId) + { + IsuUserAssociation association = new(id, user, universityId); + association.AttachAssociation(); + + return association; + } } \ No newline at end of file diff --git a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs index bde13892..9b96ba43 100644 --- a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs +++ b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs @@ -8,8 +8,14 @@ public abstract partial class UserAssociation : IEntity protected UserAssociation(Guid id, User user) : this(id) { User = user; - user.AddAssociation(this); + + // user.AddAssociation(this); } public virtual User User { get; protected init; } + + protected void AttachAssociation() + { + User.AddAssociation(this); + } } \ No newline at end of file diff --git a/src/core/Infrastructure/ITMO.Dev.ASAP.Seeding/EntityGenerators/UserAssociations/IsuUserAssociationGenerator.cs b/src/core/Infrastructure/ITMO.Dev.ASAP.Seeding/EntityGenerators/UserAssociations/IsuUserAssociationGenerator.cs index 84b57aec..fc8f8df7 100644 --- a/src/core/Infrastructure/ITMO.Dev.ASAP.Seeding/EntityGenerators/UserAssociations/IsuUserAssociationGenerator.cs +++ b/src/core/Infrastructure/ITMO.Dev.ASAP.Seeding/EntityGenerators/UserAssociations/IsuUserAssociationGenerator.cs @@ -42,7 +42,7 @@ protected override IsuUserAssociation Generate(int index) } int id = _faker.Random.Int(MinIsuNumber, MaxIsuNumber); - var association = new IsuUserAssociation(_faker.Random.Guid(), user, id); + var association = IsuUserAssociation.CreateAndAttach(_faker.Random.Guid(), user, id); return association; } From a446f2c3397c548da8cb0cce335be25e2ee26567 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 12 May 2023 15:22:12 +0300 Subject: [PATCH 2/2] refactor: remove comment --- .../ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs index 9b96ba43..c30f29e2 100644 --- a/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs +++ b/src/core/Domain/ITMO.Dev.ASAP.Domain/UserAssociations/UserAssociation.cs @@ -8,8 +8,6 @@ public abstract partial class UserAssociation : IEntity protected UserAssociation(Guid id, User user) : this(id) { User = user; - - // user.AddAssociation(this); } public virtual User User { get; protected init; }