public async Task <Unit> Handle(AppParameterCreateBundleCommand request, CancellationToken cancellationToken) { //await SendEmailExample(); ThrowIfMessageNotValid(request); try { AppParameter appParameter1 = new AppParameter("App Parameter 1", "1", "App Parameter Description 1", _user.Name); AppParameter appParameter2 = new AppParameter("App Parameter 2", "2", "App Parameter Description 2", _user.Name); AppParameter appParameter3 = new AppParameter("App Parameter 3", "3", "App Parameter Description 3", _user.Name); AppParameter appParameter4 = new AppParameter("App Parameter 4", "4", "App Parameter Description 4", _user.Name); AppParameter appParameter5 = new AppParameter("App Parameter 5", "5", "App Parameter Description 5", _user.Name); await StartTransactionAsync(); await _appParameterRepository.AddAsync(appParameter1); await CommitAsync(); await _appParameterRepository.AddAsync(appParameter2); await CommitAsync(); await _appParameterRepository.AddAsync(appParameter3); await CommitAsync(); await _appParameterRepository.AddAsync(appParameter4); await CommitAsync(); await _appParameterRepository.AddAsync(appParameter5); await CommitAsync(); if (request.ThrowException) { throw new Exception("this exception is throw for demonstration"); } await CommitTransactionAsync(); await _bus.Publish(new AppParameterCreatedEvent(appParameter1, _user)); await _bus.Publish(new AppParameterCreatedEvent(appParameter2, _user)); await _bus.Publish(new AppParameterCreatedEvent(appParameter3, _user)); await _bus.Publish(new AppParameterCreatedEvent(appParameter4, _user)); await _bus.Publish(new AppParameterCreatedEvent(appParameter5, _user)); return(Unit.Value); } catch (Exception) { await RollbackTransactionAsync(); throw; } }
public async Task CreateBundleAsync(bool throwException) { AppParameterCreateBundleCommand createBundleCommand = new AppParameterCreateBundleCommand(throwException); await _bus.Send(createBundleCommand); }