public async Task Test_StartupException()
        {
            bool isDisposed = false;

            AssemblyUtils.SetEntryAssembly(GetType().Assembly);

            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName(ApplicationName)
                                    .WithScanDirectories(
                TestAssemblyDirectories
                )
                                    // Add all file starting with Dapplo and ending on .dll
                                    .WithAssemblyPatterns("Dapplo*")
                                    .BuildApplicationConfig();

            using (var bootstrapper = new ApplicationBootstrapper(applicationConfig))
            {
                bootstrapper.Configure();

                // Makes the startup break
                bootstrapper.Builder.Register(context => true);

                bootstrapper.RegisterForDisposal(SimpleDisposable.Create(() => isDisposed = true));

                // Initialize, so we can export
                Assert.True(await bootstrapper.InitializeAsync().ConfigureAwait(false), "Not initialized");

                // Start the composition, and IStartupActions
                await Assert.ThrowsAsync <NotSupportedException>(async() => await bootstrapper.StartupAsync().ConfigureAwait(false));
            }
            // Dispose automatically calls IShutdownActions
            Assert.True(isDisposed);
        }
Exemple #2
0
        public static void Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#endif
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Wapplo")
                                    .WithMutex("BF63D6C4-5F1A-4D43-87C7-0607EB50D0D0")
                                    .WithConfigSupport()
                                    .WithIniSectionResolving()
                                    .WithLanguageResolving()
                                    .WithCaliburnMicro()
                                    .WithAssemblyNames("Dapplo.Owin", "Dapplo.Signalr")
                                    .WithAssemblyPatterns("Wapplo*")
                                    .WithScanDirectories(
#if DEBUG
                @"..\..\..\Wapplo.ShareContext\bin\Debug",
                @"..\..\..\Wapplo.WindowsServices\bin\Debug"
#else
                @"..\..\..\Wapplo.ShareContext\bin\Release",
                @"..\..\..\Wapplo.WindowsServices\bin\DebugRelease"
#endif
                )
                                    .BuildApplicationConfig();

            var dapplication = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            dapplication.Run();
        }
Exemple #3
0
        public static void Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#else
            // Make sure everything is logged, until the next logger is set, so it can be forwarded
            LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug);
#endif

            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Dapplo.Dopy")
                                    .WithMutex("06486F0F-0DBC-4912-9C5C-5C9C777BA34E")
                                    .WithCaliburnMicro()
                                    .WithoutCopyOfEmbeddedAssemblies()
                                    .WithAssemblyPatterns("Dapplo.Dopy*")
                                    .BuildApplicationConfig();
            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            application.Run();
        }
        public async Task TestStartupShutdown()
        {
            AssemblyUtils.SetEntryAssembly(GetType().Assembly);

            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName(ApplicationName)
                                    .WithScanDirectories(TestAssemblyDirectories)
                                    // Add all assemblies starting with Dapplo
                                    .WithAssemblyPatterns("Dapplo*")
                                    .BuildApplicationConfig();

            using (var bootstrapper = new ApplicationBootstrapper(applicationConfig))
            {
                bootstrapper.Configure();
#if DEBUG
                bootstrapper.EnableActivationLogging = true;
#endif
                // Start the composition, and IStartupActions
                Assert.True(await bootstrapper.InitializeAsync().ConfigureAwait(false), "Couldn't run");

                Assert.Contains(bootstrapper.LoadedAssemblies, addon => addon.GetName().Name.EndsWith("TestAddon"));
            }
            // Dispose automatically calls IShutdownActions
        }
Exemple #5
0
        public static void Main()
        {
            LogSettings.RegisterDefaultLogger <FileLogger>(LogLevels.Verbose);
            //LogSettings.RegisterDefaultLogger<DebugLogger>(LogLevels.Verbose);

            // Use this to setup the culture of your UI
            var cultureInfo = CultureInfo.GetCultureInfo("en-US");

            Thread.CurrentThread.CurrentCulture   = cultureInfo;
            Thread.CurrentThread.CurrentUICulture = cultureInfo;

            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("ClickOnceDemo")
                                    .WithMutex("2141D0DC-2B87-4B70-A8A7-A1EFDB588656")
                                    .WithCaliburnMicro()
                                    .WithAssemblyPatterns("Application.Demo*")
                                    .BuildApplicationConfig();

            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode     = ShutdownMode.OnLastWindowClose,
                OnAlreadyRunning = () =>
                {
                    MessageBox.Show("Already started, exiting");
                    return(-1);
                }
            };

            // Handle exceptions
            application.DisplayErrorView();
            application.Run();
        }
        public static void Main()
        {
            var applicationConfig = ApplicationConfigBuilder.
                                    Create()
                                    //.WithoutAsyncAssemblyLoading()
                                    // Make sure the bootstrapper knows where to find it's DLL files
                                    .WithScanDirectories(
                ScanLocations.GenerateScanDirectories(
#if NET471
                    "net471",
#else
                    "netcoreapp3.0",
#endif
                    "Application.Demo.Addon",
                    "Application.Demo.MetroAddon",
                    "Application.Demo.OverlayAddon").ToArray()
                )
                                    .WithApplicationName("Application.Demo")
                                    .WithMutex("f32dbad8-9904-473e-86e2-19275c2d06a5")
                                    // Enable CaliburnMicro
                                    .WithCaliburnMicro()
                                    .WithoutCopyOfEmbeddedAssemblies()
#if NET471
                                    .WithoutCopyOfAssembliesToProbingPath()
#endif
                                    //.WithoutStrictChecking()
                                    // Load the Application.Demo.* assemblies
                                    .WithAssemblyPatterns("Application.Demo.*").BuildApplicationConfig();

            Start(applicationConfig);
        }
Exemple #7
0
        public static int Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#endif

            var applicationConfig = ApplicationConfigBuilder.Create()
                                    .WithApplicationName("Dapplo.SabNZB")
                                    .WithMutex("68cb5937-90cd-4a17-9d30-d68fa9906cd6")
                                    .WithCaliburnMicro()
                                    .WithConfigSupport()
                                    // Activate automatic "IniSection" resolving
                                    .WithIniSectionResolving()
                                    // Activate automatic "ILanguage" resolving
                                    .WithLanguageResolving()
                                    .BuildApplicationConfig();
            var dapplication = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            if (dapplication.WasAlreadyRunning)
            {
                return(-1);
            }

            StringEncryptionTypeConverter.RgbIv  = "0@94hFj3&E4r!k231E!";
            StringEncryptionTypeConverter.RgbKey = "lkfwWF/63)=ßDeefkez4§Rf33g39hh§F";

            dapplication.Run();
            return(0);
        }
        public void Test_ApplicationConfig_AssemblyNames()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithAssemblyNames("Dapplo.Addons.Config")
                         .BuildApplicationConfig();

            Assert.Contains(config.AssemblyNames, s => s.Equals("Dapplo.Addons.Config"));
        }
        public void Test_ApplicationConfig_ScanDirectories_With()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithScanDirectories("TestFiles")
                         .BuildApplicationConfig();

            Assert.Contains(config.ScanDirectories, s => s.EndsWith(@"TestFiles", StringComparison.OrdinalIgnoreCase));
        }
        public void Test_ApplicationConfig_ApplicationName()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithApplicationName("Dapplo")
                         .BuildApplicationConfig();

            Assert.Equal("Dapplo", config.ApplicationName);
        }
        public void Test_ApplicationConfig_Extensions_Add()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithExtensions(".gsp")
                         .BuildApplicationConfig();

            Assert.Equal(config.Extensions, new[] { ".dll", ".dll.compressed", ".dll.gz", ".gsp" });
        }
        public void Test_ApplicationConfig_Mutex()
        {
            var guid   = Guid.NewGuid().ToString();
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithMutex(guid)
                         .BuildApplicationConfig();

            Assert.Equal(guid, config.Mutex);
        }
        public void TestConstructorAndCleanup()
        {
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName(ApplicationName)
                                    .BuildApplicationConfig();

            var bootstrapper = new ApplicationBootstrapper(applicationConfig);

            bootstrapper.Dispose();
        }
        public void Test_ApplicationConfig_Extensions_Remove()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .WithoutExtensions(".dll", ".dll.compressed", ".dll.gz")
                         .BuildApplicationConfig();

            Assert.Empty(config.Extensions);
            config = ApplicationConfigBuilder.Create().WithoutExtensions().BuildApplicationConfig();
            Assert.Empty(config.Extensions);
        }
        public void Test_ApplicationConfig_Defaults()
        {
            var config = ApplicationConfigBuilder
                         .Create()
                         .BuildApplicationConfig();

            Assert.NotEmpty(config.ApplicationName);
            Assert.Equal(FileLocations.AssemblyResolveDirectories, config.ScanDirectories);
            Assert.Contains(config.Extensions, s => s.Equals(".dll"));
            Assert.False(config.UseGlobalMutex);
            Assert.True(config.ScanForEmbeddedAssemblies);
            Assert.True(config.CopyEmbeddedAssembliesToFileSystem);
        }
        public void TestConstructorWithMutexAndCleanup()
        {
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Test")
                                    .WithMutex(Guid.NewGuid().ToString())
                                    .BuildApplicationConfig();

            using (var bootstrapper = new ApplicationBootstrapper(applicationConfig))
            {
                Assert.False(bootstrapper.IsAlreadyRunning);
            }
        }
Exemple #17
0
        public static int Main(string[] arguments)
        {
            // TODO: Set via build
            StringEncryptionTypeConverter.RgbIv  = "dlgjowejgogkklwj";
            StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff";

            // Make sure the exceptions in the log are readable, uses Ben.Demystifier
            //LogSettings.ExceptionToStacktrace = exception => exception.ToStringDemystified();
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#endif
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Greenshot")
                                    .WithMutex("F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08")
                                    .WithConfigSupport()
                                    .WithCaliburnMicro()
                                    .WithAssemblyPatterns("Greenshot.Addon*")
                                    .BuildApplicationConfig();

            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            // Prevent multiple instances
            if (application.WasAlreadyRunning)
            {
                // TODO: Call the running instance, pass the commandline
                ShowInstances();
                // Don't start the dapplication, exit with 0
                application.Shutdown(0);
                return(-1);
            }

            RegisterErrorHandlers(application);

            application.Bootstrapper.OnContainerCreated += container =>
            {
                var autofacServiceLocator = new AutofacServiceLocator(container);
                ServiceLocator.SetLocatorProvider(() => autofacServiceLocator);
            };
            application.Run();
            return(0);
        }
Exemple #18
0
        public static int Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#else
            LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug);
#endif

            // TODO: Set via build
            StringEncryptionTypeConverter.RgbIv  = "dlgjowejgogkklwj";
            StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff";

            // Use this to setup the culture of your UI
            var cultureInfo = CultureInfo.GetCultureInfo("en-US");
            Thread.CurrentThread.CurrentCulture   = cultureInfo;
            Thread.CurrentThread.CurrentUICulture = cultureInfo;

            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Finder")
                                    .WithMutex("896482B0-2E32-480C-A9C1-87B1CCF245BF")
                                    .WithoutCopyOfEmbeddedAssemblies()
                                    .WithCaliburnMicro()
                                    .BuildApplicationConfig();

            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnLastWindowClose
            };

            // Prevent multiple instances
            if (application.WasAlreadyRunning)
            {
                Log.Warn().WriteLine("{0} was already running.", applicationConfig.ApplicationName);
                // Don't start the dapplication, exit with 0
                application.Shutdown(-1);
                return(-1);
            }

            RegisterErrorHandlers(application);

            application.Run();
            return(0);
        }
Exemple #19
0
        public static int Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#else
            LogSettings.RegisterDefaultLogger <ForwardingLogger>(LogLevels.Debug);
#endif

            // TODO: Set via build
            StringEncryptionTypeConverter.RgbIv  = "dlgjowejgogkklwj";
            StringEncryptionTypeConverter.RgbKey = "lsjvkwhvwujkagfauguwcsjgu2wueuff";

            Log.Info().WriteLine("Windows version {0}", Environment.OSVersion.Version);
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Pip")
                                    .WithMutex("214222E8-9878-451F-BF9B-B788F591E7DD")
                                    .WithCaliburnMicro()
                                    .WithoutCopyOfEmbeddedAssemblies()
#if NET471
                                    .WithoutCopyOfAssembliesToProbingPath()
#endif
                                    .BuildApplicationConfig();

            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            // Prevent multiple instances
            if (application.WasAlreadyRunning)
            {
                Log.Warn().WriteLine("{0} was already running.", applicationConfig.ApplicationName);
                // Don't start the dapplication, exit with -1
                application.Shutdown(-1);
                return(-1);
            }

            RegisterErrorHandlers(application);

            application.Run();
            return(0);
        }
Exemple #20
0
        public static void Main()
        {
#if DEBUG
            // Initialize a debug logger for Dapplo packages
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);
#endif
            var applicationConfig = ApplicationConfigBuilder
                                    .Create()
                                    .WithApplicationName("Dapplo.Exchange.ExampleClient")
                                    .WithMutex("05ffc82c-f7cd-45d3-831d-867660a231ff")
                                    .WithCaliburnMicro()
                                    .BuildApplicationConfig();
            var application = new Dapplication(applicationConfig)
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };
            if (application.WasAlreadyRunning)
            {
            }
            application.Run();
        }
Exemple #21
0
        public static async Task <int> Main(string[] args)
        {
            LogSettings.RegisterDefaultLogger <DebugLogger>(LogLevels.Verbose);

            var applicationConfig = ApplicationConfigBuilder.Create()
                                    .WithApplicationName("DemoConsoleApp")
                                    .WithScanDirectories(
#if DEBUG
                @"..\..\..\..\Dapplo.Addons.TestAddonWithCostura\bin\Debug\netstandard2.0",
#else
                @"..\..\..\..\Dapplo.Addons.TestAddonWithCostura\bin\Release\netstandard2.0",
#endif
                FileLocations.StartupDirectory,
                @"MyOtherLibs"
                )
                                    .WithAssemblyNames("Dapplo.HttpExtensions", "Dapplo.Addons.TestAddonWithCostura").BuildApplicationConfig();

            using (var bootstrapper = new ApplicationBootstrapper(applicationConfig))
            {
#if DEBUG
                bootstrapper.EnableActivationLogging = true;
#endif
                bootstrapper.Configure();

                await bootstrapper.InitializeAsync().ConfigureAwait(false);

                bootstrapper.Container.Resolve <ServiceStartupShutdown>();
                // Find all, currently, available assemblies
                if (Log.IsDebugEnabled())
                {
                    foreach (var resource in bootstrapper.Resolver.EmbeddedAssemblyNames())
                    {
                        Log.Debug().WriteLine("Available embedded assembly {0}", resource);
                    }
                }
                Assembly.Load("Dapplo.HttpExtensions");
            }
            return(0);
        }
 /// <summary>
 /// Configure the ApplicationConfig to use Dapplo.CaliburnMicro by adding the right stuff
 /// </summary>
 /// <param name="applicationConfigBuilder">ApplicationConfigBuilder</param>
 /// <returns>ApplicationConfigBuilder</returns>
 public static ApplicationConfigBuilder WithCaliburnMicro(this ApplicationConfigBuilder applicationConfigBuilder)
 {
     // Load the Dapplo.CaliburnMicro.* assemblies
     applicationConfigBuilder.WithAssemblyPatterns("Dapplo.CaliburnMicro*");
     return(applicationConfigBuilder);
 }