Beispiel #1
0
        private static void Main(string[] args)
        {
            logger.Info($"Started {DateTime.Now}");

            PathService.EnsurePathExists();

            logger.Info($"Service data resides in `{PathService.AppData}`");

            var container = CreateDiContainer();

            HostFactory.Run(configurator =>
            {
                configurator.UseLog4Net();
                configurator.StartAutomatically();

                configurator.EnableServiceRecovery(rc =>
                {
                    rc.RestartService(1); // restart the service after 1 minute
                });

                configurator.Service <TelegramBotService>(s =>
                {
                    s.ConstructUsing(hostSettings => container.Resolve <TelegramBotService>());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });

                configurator.RunAsLocalSystem();

                configurator.SetDescription("Telegram Theory Bot host");
                configurator.SetDisplayName("Telegram Theory Bot");
                configurator.SetServiceName("Theorbo");
            });
        }
Beispiel #2
0
        public static TrekplannerConfiguration LoadOrCreate(bool saveIfNew = false)
        {
            lock (ConfigReaderWriterLock)
            {
                PathService.EnsurePathExists();

                if (!File.Exists(ConfigFilename))
                {
                    var result = new TrekplannerConfiguration();

                    if (saveIfNew)
                    {
                        result.Save();
                    }

                    return(result);
                }

                var existing = JsonConvert.DeserializeObject <TrekplannerConfiguration>(
                    File.ReadAllText(ConfigFilename),
                    JsonFormatters.IndentedAutotype);

                //future: additional processing

                return(existing);
            }
        }