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 IApplication CreateWebApplication(IApplicationMetadata metadata, IApplicationPackage package, Dictionary <string, object> args)
 {
     return(new WebApplication(
                metadata,
                package.Manifest.App.StartupTimeout,
                package,
                args,
                _kernelPlugins(),
                _createBrowser,
                _createWindow,
                _createWindowManager));
 }
        public bool Equals(IApplicationMetadata other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }

            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(string.Equals(Id, other.Id) && string.Equals(InstanceId, other.InstanceId));
        }
        public IApplication CreateApplication(IApplicationMetadata metadata, IApplicationPackage package, Dictionary <string, object> args)
        {
            metadata.Id      = package.Manifest.Id;
            metadata.AppType = package.Manifest.Type;

            switch (package.Manifest.Type)
            {
            case ApplicationType.Hosted:
                return(CreateWebApplication(metadata, package, args));

            case ApplicationType.Packaged:
                return(CreateWebApplication(metadata, package, args));

            default:
                throw new Exception("Unknown application type");
            }
        }
예제 #5
0
        public void CreateDefaultCommand(IApplicationMetadata applicationMetadata)
        {
            CommandInfo defaultCommandInfo = _type.GetDefaultCommandInfo(_settings);

            if (defaultCommandInfo != null)
            {
                ConfigureMetadata(_app, applicationMetadata);
                ConfigureCommandLineApplication(_app, defaultCommandInfo);
            }
            else
            {
                ConfigureMetadata(_app, applicationMetadata);
                _app.OnExecute(() =>
                {
                    _app.ShowHelp();
                    return(Task.FromResult(0));
                });
            }
        }
예제 #6
0
 private static void ConfigureMetadata(CommandLineApplication app, IApplicationMetadata applicationMetadata)
 {
     app.Description      = applicationMetadata?.Description;
     app.ExtendedHelpText = applicationMetadata?.ExtendedHelpText;
     app.HelpOption(Constants.HelpTemplate);
 }