public async Task FinishPayment(FinishPaymentRequest request) { await locker.WaitAsync(); if (status != ContextStatus.Ready) { throw new InvalidOperationException("Another operation is in progress"); } try { status = ContextStatus.InUse; await provider.FinishPayment(request); } finally { status = ContextStatus.Ready; locker.Release(1); } }
public Task FinishPayment(FinishPaymentRequest request) { return(mpos.FinishTransaction(request.Success, request.ResponseCode, request.EmvData)); }