/// <summary>
/// アクション実行
/// </summary>
/// <param name="action"></param>
/// <param name="errorAction"></param>
public static async Task ExecuteAsync(IPageDialogService pageDialogService,
Func<Task> action,
Func<Task> successAction,
Func<Exception, Task> errorAction)
{
try
{
await action();
if (successAction != null)
{
await successAction();
}
}
catch (BusinessApplicationException ex1) when (ex1 is ApiTimeoutException)
{
await ShowDialogTimeoutAsync(pageDialogService);
await errorAction?.Invoke(ex1);
}
catch (BusinessSystemException ex2)
{
// TODO:継続不可能例外
throw;
}
catch (Exception ex3)
{
throw;
}
}