private void Transfer_OnClicked(object sender, System.Windows.Input.GestureEventArgs e) { MoneyTransferViewModel dataContext = ((FrameworkElement)((RoutedEventArgs)e).OriginalSource).DataContext as MoneyTransferViewModel; MoneyTransfer moneyTransfer = dataContext != null ? dataContext.Transfer : null; if (moneyTransfer == null) { return; } TransferCardView.Show(moneyTransfer.id, moneyTransfer.from_id, moneyTransfer.to_id); }
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); }