public IHttpActionResult Post(MoneyTransferRequest request) { MoneyTransferTransaction transaction = new MoneyTransferTransaction(); MoneyTransferResponse response = new MoneyTransferResponse(); transaction.Execute(request, response); if (response.Result.IsSuccess) return Ok(response); else return NotFound(); // Can return result status. }
private static void ShowWithLoader(Action <Action <BackendResult <MoneyTransferResponse, ResultCode> >, CancellationToken> loadAction) { CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); FullscreenLoader fullscreenLoader = new FullscreenLoader(); fullscreenLoader.HideOnBackKeyPress = true; Action <FullscreenLoaderHiddenEventArgs> action = (Action <FullscreenLoaderHiddenEventArgs>)(args => cancellationTokenSource.Cancel()); fullscreenLoader.HiddenCallback = action; FullscreenLoader loader = fullscreenLoader; loader.Show(null, true); loadAction((Action <BackendResult <MoneyTransferResponse, ResultCode> >)(result => { loader.Hide(false); ResultCode resultCode = result.ResultCode; if (resultCode == ResultCode.Succeeded) { Execute.ExecuteOnUIThread((Action)(() => { MoneyTransferResponse resultData = result.ResultData; if (resultData == null) { return; } MoneyTransfer transfer = resultData.transfer; User user = resultData.user; if (transfer == null || user == null) { return; } TransferCardView.Show(new MoneyTransferViewModel(transfer, user)); })); } else { GenericInfoUC.ShowBasedOnResult(resultCode, "", null); } }), cancellationTokenSource.Token); }