Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2994-AutoDiffForIntervals/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs @ 16744

Last change on this file since 16744 was 16117, checked in by jkarder, 6 years ago

#2839: merged [15377-16116/branches/2839_HiveProjectManagement] into trunk

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.