From 891e62cc44141a36e854dd5e10ad51327f07b485 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Tue, 27 Jul 2021 17:16:51 +0300 Subject: [PATCH] Create OrganizationMembershipChangedEventHandler --- ...ganizationMembershipChangedEventHandler.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/EventHub.Domain/Organizations/Memberships/OrganizationMembershipChangedEventHandler.cs diff --git a/src/EventHub.Domain/Organizations/Memberships/OrganizationMembershipChangedEventHandler.cs b/src/EventHub.Domain/Organizations/Memberships/OrganizationMembershipChangedEventHandler.cs new file mode 100644 index 0000000..4625fd1 --- /dev/null +++ b/src/EventHub.Domain/Organizations/Memberships/OrganizationMembershipChangedEventHandler.cs @@ -0,0 +1,40 @@ +using System; +using System.Threading.Tasks; +using EventHub.Organizations; +using EventHub.Organizations.Memberships; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.EventBus; + +namespace EventHub.Domain.Organizations.Memberships +{ + public class OrganizationMembershipChangedEventHandler : ILocalEventHandler>, + ILocalEventHandler>, ITransientDependency + { + private readonly IRepository _organizationRepository; + + public OrganizationMembershipChangedEventHandler(IRepository organizationRepository) + { + _organizationRepository = organizationRepository; + } + + public async Task HandleEventAsync(EntityCreatedEventData eventData) + { + var organization = await _organizationRepository.GetAsync(eventData.Entity.OrganizationId); + + organization.MemberCount++; + + await _organizationRepository.UpdateAsync(organization); + } + + public async Task HandleEventAsync(EntityDeletedEventData eventData) + { + var organization = await _organizationRepository.GetAsync(eventData.Entity.OrganizationId); + + organization.MemberCount--; + + await _organizationRepository.UpdateAsync(organization); + } + } +}