namespace Brizco.Repository.Handlers.Complex; public class CreateComplexCommandHandler : IRequestHandler { private readonly IRepositoryWrapper _repositoryWrapper; private readonly ICurrentUserService _currentUserService; public CreateComplexCommandHandler(IRepositoryWrapper repositoryWrapper,ICurrentUserService currentUserService) { _repositoryWrapper = repositoryWrapper; _currentUserService = currentUserService; } public async Task Handle(CreateComplexCommand request, CancellationToken cancellationToken) { try { await _repositoryWrapper.BeginTransaction(cancellationToken); var complex = Domain.Entities.Complexes.Complex.Create(request.Name, request.Address, request.SupportPhone); _repositoryWrapper.SetRepository().Add(complex); await _repositoryWrapper.SaveChangesAsync(cancellationToken); await _repositoryWrapper.CommitAsync(cancellationToken); return complex.AdaptToSDto(); } catch (Exception) { await _repositoryWrapper.RollBackAsync(cancellationToken); throw; } } }