public async Task <ICollection <MasterDataDeletionResult> > Handle(DeleteCurrenciesCommand request, CancellationToken cancellationToken) { _unitOfWork.BeginTransaction(); try { var deleteResults = await _currencyRepository.DeleteCurrencies(request.MasterDataList.Select(m => m.CurrencyCode)); _unitOfWork.Commit(); var result = deleteResults.Select(item => new MasterDataDeletionResult { Id = item.MasterDataId, Code = item.MasterDataCode, MasterDataOperationStatus = item.GetMasterDataOperationStatus() }).ToList(); return(result); } catch { _logger.LogError("Currency delete failed."); _unitOfWork.Rollback(); throw; } }