source: branches/2915-AbsoluteSymbol/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs @ 16240

Last change on this file since 16240 was 16240, checked in by gkronber, 11 months ago

#2915: merged changes in the trunk up to current HEAD (r15951:16232) into the branch

File size: 1.4 KB
Line 
1using System;
2using System.ServiceModel.Security;
3using System.Threading.Tasks;
4using HeuristicLab.PluginInfrastructure;
5
6namespace HeuristicLab.Clients.Hive {
7  public class SecurityExceptionUtil {
8    public static void TryAndReportSecurityExceptions(Action action, Action finallyCallback = null) {
9      try {
10        action();
11      } catch (MessageSecurityException ex) {
12        ErrorHandling.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex);
13      } catch (SecurityAccessDeniedException ex) {
14        ErrorHandling.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex);
15      } finally {
16        if (finallyCallback != null) finallyCallback();
17      }
18    }
19
20    public static async Task TryAsyncAndReportSecurityExceptions(Action action, Action finallyCallback = null) {
21      try {
22        await Task.Run(action);
23      } catch (MessageSecurityException ex) {
24        ErrorHandling.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex);
25      } catch (SecurityAccessDeniedException ex) {
26        ErrorHandling.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex);
27      } finally {
28        if (finallyCallback != null) finallyCallback();
29      }
30    }
31  }
32}
Note: See TracBrowser for help on using the repository browser.