private static SolidColorBrush ConvertToColor(string text) { SolidColorBrush fallback = new SolidColorBrush(Colors.Black); if (string.IsNullOrEmpty(text)) return fallback; if (!text.StartsWith("#")) text = "#" + text; SolidColorBrush brush = null; var converter = new BrushConverter(); if (converter.CanConvertFrom(typeof (string))) { try { brush = (SolidColorBrush)converter.ConvertFrom(text); } catch (Exception e) { ILogger Logger = ParagonLogManager.GetLogger(); Logger.Error("error ConvertFrom when converting color:" + text + ", exception: " + e.ToString()); // fallback in case of exception brush = fallback; } } if (brush == null) brush = fallback; return brush; }
public static int Main(string[] args) { InitLogging(args); var logger = ParagonLogManager.GetLogger(); var procId = Process.GetCurrentProcess().Id; logger.Info("Render process {0} starting", procId); try { if (!ExitWhenParentProcessExits()) { logger.Warn("Unable to monitor parent process for exit"); } CefRuntime.Load(); CefRuntime.ExecuteProcess(new CefMainArgs(args), new CefRenderApplication(), IntPtr.Zero); } catch (Exception ex) { logger.Error("Fatal error in render process {0} : {1}, StackTrace = {2}", procId, ex.Message, ex.StackTrace); return(1); } logger.Info("Render process {0} stopping.", procId); return(0); }
public WebApplication( IApplicationMetadata metadata, int startupTimeout, IApplicationPackage package, Dictionary <string, object> args, // ReSharper disable once ParameterTypeCanBeEnumerable.Local IParagonPlugin[] kernelPlugins, Func <ICefWebBrowser> newBrowser, Func <IApplicationWindowEx> newAppWindow, Func <IApplicationWindowManagerEx> newWindowManager) { Logger = ParagonLogManager.GetLogger(); Metadata = metadata; Package = package; Args = args; Plugins = new List <IParagonPlugin>(kernelPlugins); _createNewWindow = newAppWindow; _createNewBrowser = newBrowser; _createWindowManager = newWindowManager; _eventPageLaunchTimeout = TimeSpan.FromSeconds(startupTimeout); _renderPlugins = new RenderSidePluginData() { PackagePath = Package != null ? Package.PackageFilePath : string.Empty, Plugins = new List <ApplicationPlugin>() }; SystemEvents.SessionEnding += OnSessionEnding; ParagonRuntime.RenderProcessInitialize += OnRenderProcessInitialize; }
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var logger = ParagonLogManager.GetLogger(); logger.Error(string.Format("An unhandled domain exception has occurred: {0}", e.ExceptionObject ?? string.Empty)); var errMessage = "A fatal error has occurred."; if (_appManager != null && _appManager.AllApplicaions != null) { var apps = _appManager.AllApplicaions.Select(app => app.Name).ToArray(); if (apps.Length > 0) { errMessage += "\n\nThe following applications will be closed: \n " + string.Join(", ", apps); } } errMessage += "\n\nPlease contact Technology Client Services if you require assistance.\n"; MessageBox.Show(errMessage, "Unhandled Exception", MessageBoxButton.OK); }