using Serilog; using System; using System.Globalization; using System.Linq; using System.Threading.Tasks; using webapi.Domain.AggregatesModel.FlatApprovalAggregate; using webapi.Domain.AggregatesModel.UserFlatMappingAggregate; using webapi.Domain.Events; using webapi.Domain.SeedWork; using webapi.Exceptions; using webapi.Infractructure.Core; using webapi.Infractructure.Repositories; namespace webapi.Infractructure.EventHandlers { public class DeleteUserToFlatMappingApprovalDomainEventHandler : BaseEventHandler { readonly IUsersFlatApprovalRepository _repository; readonly IUserAuthRepository _userAuthRepository; readonly ILogger _log; public DeleteUserToFlatMappingApprovalDomainEventHandler(ILogger log, IUsersFlatApprovalRepository repository, IUserAuthRepository userAuthRepository) { _log= log; _repository = repository; _userAuthRepository = userAuthRepository; } public override async Task Handle(DeleteUserToFlatMappingApprovalDomainEvent request) { var user = _userAuthRepository.GetUserByTaloyhtioUserId(request.UserId); if (user == null) throw new WarningException($"The user with Id: {request.UserId} does not exist"); var u2f = _repository.GetApproval(user.TaloyhtioUserId, request.FlatId); _log.Information($"{nameof(DeleteUserToFlatMappingApprovalDomainEventHandler)} TaloyhtioUserId: {user.TaloyhtioUserId}, FlatId: {request.FlatId}, IsFound: {u2f != null}"); if (u2f != null) { await _repository.DeleteEntityAsync(u2f); } } } }