protected async override Task <object> OnPerform() { var contract = new { saleNumber = _cacheManager.SaleNumber, tillNumber = _cacheManager.TillNumberForSale, registerNumber = _cacheManager.RegisterNumber, transactionType = _transactionType, issueStoreCredit = _issueStoreCredit }; var payload = JsonConvert.SerializeObject(contract); var content = new StringContent(payload, Encoding.UTF8, ApplicationJSON); var response = await _restClient.CompletePayment(content); var data = await response.Content.ReadAsStringAsync(); switch (response.StatusCode) { case HttpStatusCode.OK: var paymentComplete = new DeSerializer().MapCompletePayment(data); return(new Mapper().MapCompletePayment(paymentComplete)); default: return(await HandleExceptions(response)); } }