public async Task <IEnumerable <int> > Handle(AddUpdateCounterpartyCommand request, CancellationToken cancellationToken) { _unitOfWork.BeginTransaction(); try { List <Counterparty> counterpartyList = new List <Counterparty>(); var counterparty = await MapCommandToCounterparty(request); counterpartyList.Add(counterparty); var counterpartyIds = await _counterpartyRepository.AddUpdateCounterpartyAsync(counterpartyList, request.Company); if (counterparty.CounterpartyID != null && counterparty.CounterpartyID > 0) { await _counterpartyRepository.DeleteCounterpartyDetailsAsync(counterpartyList, request.Company); } _unitOfWork.Commit(); return(counterpartyIds); } catch { _unitOfWork.Rollback(); throw; } }