/// <summary>
        /// Returns the core settings accessor.
        /// </summary>
        /// <returns></returns>
        internal ICoreSettings GetCoreSettingsAccessor()
        {
            if (CoreSettings != null)
            {
                return(CoreSettings);
            }
            else
            {
                base.WriteVerbose("Initializing core settings accessor.");

                CoreSettings = new WindowsCoreSettings();

                return(CoreSettings);
            }
        }
Exemple #2
0
        /// <summary>
        /// Core application start.
        /// </summary>
        private void CoreStart()
        {
            CoreSettings = new WindowsCoreSettings();

            StartLoggers();

            CoreLog.WriteSystemEvent(
                string.Format("Starting {0} client service version {1}.", ArchivialLibrary.Constants.Logging.AppName, Assembly.GetExecutingAssembly().GetName().Version.ToString()),
                EventLogEntryType.Information, ArchivialLibrary.Constants.EventIDs.StartingService, true);

            var dbTask = ConfigureDatabaseAsync();

            dbTask.Wait();

            if (!dbTask.Result)
            {
                Stop();
                return;
            }

            if (!StartCoreServiceEngine())
            {
                Stop();
                return;
            }

            if (!StartConnectionEngine())
            {
                Stop();
                return;
            }

            if (!StartStatusEngine())
            {
                Stop();
                return;
            }

            if (!StartScanEngine())
            {
                Stop();
                return;
            }

            var beTask = StartBackupEnginesAsync();

            beTask.Wait();

            if (!beTask.Result)
            {
                Stop();
                return;
            }

            var cleTask = StartCleanupEnginesAsync();

            cleTask.Wait();

            if (!cleTask.Result)
            {
                Stop();
                return;
            }

            CoreLog.WriteSystemEvent(
                string.Format("Successfully started {0} client service.", ArchivialLibrary.Constants.Logging.AppName),
                EventLogEntryType.Information, ArchivialLibrary.Constants.EventIDs.StartedService, true);
        }