Пример #1
0
        protected virtual ZetboxConfig ReadConfig(List <string> extraArguments)
        {
            string configFilePath = null;

            if (extraArguments == null || extraArguments.Count == 0)
            {
                configFilePath = String.Empty;
            }
            else if (extraArguments.Count == 1)
            {
                configFilePath = extraArguments[0];
            }
            else
            {
                Logging.MailNotification.FatalFormat("Unerkannte Argumente: [{0}]", String.Join("], [", extraArguments.ToArray()));
                PrintHelpAndExit();
            }

            try
            {
                return(ZetboxConfig.FromFile(configFilePath, ""));
            }
            catch (Exception ex)
            {
                Logging.MailNotification.Fatal(String.Format("Fehler beim Lesen der Config von [{0}]", configFilePath), ex);
                PrintHelpAndExit();
            }
            // never reached
            return(null);
        }
Пример #2
0
        public void LoadFile()
        {
            var config = ZetboxConfig.FromFile("TestConfig.xml", "DoesNotExist.xml");

            Assert.That(config, Is.Not.Null, "Configuration");
            Assert.That(config.ConfigFilePath, Is.EqualTo("TestConfig.xml"), "ConfigFilePath");
            Assert.That(config.ConfigName, Is.Not.Empty, "ConfigName");
        }
Пример #3
0
        public void DefaultLoading()
        {
            var config = ZetboxConfig.FromFile(String.Empty, "DefaultConfig.xml");

            Assert.That(config, Is.Not.Null, "Configuration");
            Assert.That(config.ConfigFilePath, Is.Not.Empty, "ConfigFilePath");
            Assert.That(config.ConfigName, Is.Not.Empty, "ConfigName");
        }
Пример #4
0
        public void ToFile()
        {
            string filename = @"testconfig_to_see_if_saving_works.xml";

            if (File.Exists(filename))
            {
                File.Delete(filename);
            }
            var config = ZetboxConfig.FromFile(String.Empty, "DefaultConfig.xml");

            config.ToFile(filename);
            Assert.That(File.Exists(filename), Is.True);
            Assert.That(new FileInfo(filename).Length, Is.GreaterThan(0));
            File.Delete(filename);
        }
Пример #5
0
        private static ZetboxConfig ExtractConfig(ref string[] args)
        {
            string configFilePath;

            if (args.Length > 0 && File.Exists(args[0]))
            {
                configFilePath = args[0];
                // remove consumed config file argument
                args = args.Skip(1).ToArray();
            }
            else
            {
                configFilePath = String.Empty;
            }
            return(ZetboxConfig.FromFile(configFilePath, "Zetbox.Server.Service.xml"));
        }
Пример #6
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            try
            {
                if (System.Configuration.ConfigurationManager.AppSettings["ShowDebugConsole"] == "true")
                {
                    DebugConsole.Show();
                }
                Logging.Configure();

                using (Logging.Log.InfoTraceMethodCall("Starting Client"))
                {
                    string configFilePath;
                    var    args = HandleCommandline(e.Args, out configFilePath);

                    var config = ZetboxConfig.FromFile(configFilePath, "Zetbox.WPF.xml");
                    AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

                    InitCulture(config);
                    InitializeClient(args, config);
                }
            }
            catch (Exception ex)
            {
                ShowExceptionReporter(ex);

                // unable to start, exit
                System.Environment.Exit(1);
            }

            // The WPFToolkit library is not translated and does not support changeing the DateTimePickerTextbox.Watermark.
            // Therefore, we have to replace the underlying ResourceManager.
            try
            {
                var srType = typeof(Microsoft.Windows.Controls.DatePicker).Assembly.GetTypes().Single(t => t.Name == "SR");
                var resourceManagerField = srType.GetField("_resourceManager", BindingFlags.Static | BindingFlags.NonPublic);
                resourceManagerField.SetValue(null, WpfToolkitResources.ResourceManager);
            }
            catch (Exception /* ex */)
            {
                // ignore this
                //ShowExceptionReporter(ex);
            }
        }
Пример #7
0
        void context_BeginRequest(object sender, EventArgs e)
        {
            if (container == null)
            {
                Logging.Configure();

                var config = ZetboxConfig.FromFile(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["configFile"]), "AspNet.xml");
                AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

                var builder = Zetbox.API.Utils.AutoFacBuilder.CreateContainerBuilder(config, config.Client.Modules);
                container = builder.Build();

                ViewModelFactory = container.Resolve <IViewModelFactory>();
                IftFactory       = container.Resolve <InterfaceType.Factory>();
            }
            ZetboxContext = container.Resolve <IZetboxContext>();
        }
Пример #8
0
        public void SetUpTestFixture()
        {
            using (Log.InfoTraceMethodCall("EarlySetup"))
            {
                EarlySetup();
            }
            using (Log.InfoTraceMethodCall("Starting up"))
            {
                var config = ZetboxConfig.FromFile(null, GetConfigFile());

                AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

                ContainerBuilder builder;
                switch (GetHostType())
                {
                case HostType.Server:
                    Log.Info("Adding Server Modules");
                    builder = Zetbox.API.Utils.AutoFacBuilder.CreateContainerBuilder(config, config.Server.Modules);
                    break;

                case HostType.Client:
                    Log.Info("Adding Client Modules");
                    builder = Zetbox.API.Utils.AutoFacBuilder.CreateContainerBuilder(config, config.Client.Modules);
                    break;

                case HostType.None:
                    Log.Info("Adding no Modules");
                    builder = Zetbox.API.Utils.AutoFacBuilder.CreateContainerBuilder(config);
                    break;

                default:
                    throw new InvalidOperationException("GetHostType() returned an unknown type");
                }

                // TODO: totally replace this with test mocks?
                Log.Info("Adding Interface Module");
                builder.RegisterModule <Zetbox.Objects.InterfaceModule>();
                builder.RegisterInstance <TypeMapAssembly>(new TypeMapAssembly(this.GetType().Assembly));
                SetupBuilder(builder);
                container = builder.Build();
                SetUp(container);
            }
        }
Пример #9
0
        static void Main()
        {
            var config = ZetboxConfig.FromFile(null, "DefaultFormsConfig.xml");

            AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);

            var builder = Zetbox.API.Utils.AutoFacBuilder.CreateContainerBuilder(config, config.Client.Modules);

            container = builder.Build();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var mdlFactory       = container.Resolve <IViewModelFactory>();
            var initialWorkspace = mdlFactory.CreateViewModel <WorkspaceViewModel.Factory>().Invoke(container.Resolve <IZetboxContext>(), null);

            mdlFactory.ShowModel(initialWorkspace, true);

            Application.Run();
        }
Пример #10
0
        protected void Application_Start(object sender, EventArgs e)
        {
            Logging.Configure();

            Log.Info("Starting HttpService Application");

            var cfgFile = System.Configuration.ConfigurationManager.AppSettings["ConfigFile"];

            var appBasePath = Server.MapPath("~/");
            var zbBasePath  = Path.Combine(appBasePath, "..");
            var configsPath = Path.Combine(zbBasePath, "Configs");

            var config = ZetboxConfig.FromFile(
                string.IsNullOrEmpty(cfgFile) ? string.Empty : Server.MapPath(cfgFile),
                ZetboxConfig.GetDefaultConfigName("Zetbox.Server.HttpService.xml", configsPath));

            // Make DocumentStore relative to HttpService
            config.Server.DocumentStore = Path.Combine(appBasePath, config.Server.DocumentStore);

            AssemblyLoader.Bootstrap(AppDomain.CurrentDomain, config);
            CreateMasterContainer(config);
        }