public static async Task <bool> TryAgain(string dialogMessage, string dialogTitle, Func <Task <bool> > func, BackgroundOperations operations, string operationText) { while (true) { Task <bool> task = func(); operations?.Add(task, operationText); if (await task) { return(true); } if (!await DialogUtils.ShowTwoOptionsAsync(dialogMessage, dialogTitle, "Yes", "No")) { return(false); } } }
public static async Task <bool> TryAgain(string dialogTitle, Func <Task <string> > func, BackgroundOperations operations, string operationText) { while (true) { Task <string> task = func(); operations?.Add(task, operationText); string errorMessage = await task; if (string.IsNullOrWhiteSpace(errorMessage)) { return(true); } if (!await DialogUtils.ShowTwoOptionsAsync(errorMessage, dialogTitle, "Yes", "No")) { return(false); } } }