public static void Init(Setting setting, Logger logger) { _setting = setting; _logger = logger; // в зависимости от того, используем БД или нет, грузим данные из разных мест if (setting.UseDatabase) { MainWindow.MainForm.InitializeDatabase(false); LoadDataFromDatabase(); } else { LoadDataFromXml(); } ClearAuthorsChengedStatus(); Authors.ListChanged += ((o, e) => Refresh()); OutputCollection = new ObservableCollection <object>(); Refresh(); _updater = new Updater(_setting, _logger); _updater.UpdaterComplete += UpdaterComplete; _updateTimer = new Timer { Interval = 60000, AutoReset = false }; // 3600000 _updateTimer.Elapsed += (o, e) => { if (!IsBusy()) { UpdateAuthors(); } }; _messageBrokerTrayInfoCollectorTimer = new Timer { Interval = 10000, AutoReset = false }; _messageBrokerTrayInfoCollectorTimer.Elapsed += (s, e) => { if (!string.IsNullOrWhiteSpace(_messageBrokerTrayInfo)) { MainWindow.ShowTrayInfo(_messageBrokerTrayInfo.Trim()); _messageBrokerTrayInfo = ""; Save(); } _messageBrokerTrayInfoCollectorTimer.Stop(); }; #if !DEBUG if (_setting != null && _setting.IntervalOfUpdate > 0) { if (_setting.UseMessageBroker) { // запускаем проверку с сервера статистики в ручном режиме, то есть true, что значит надо проверить всех авторов из списка с сервера статистики и не запускать проверку с оригинала сайта для всех авторов _logger.Working = true; UpdateAuthorsFromStatServer(true, () => { StatServerUpdating = false; if (_setting.UseMessageBroker) { _logger.Add(string.Format("{0} Проверка авторов с сервера статистики окончена", DateTime.Now.ToShortTimeString())); } // проверить авторов согласно расписанию UpdateAuthorsFromSI(false); }); } else { UpdateAuthorsFromSI(false); // Запсутить првоерку с сайта оригинала согласно плана проверок } } #else _updateTimer = new Timer { Interval = 60000, AutoReset = false }; #endif _setting.PropertyChanged += (o, e) => { if (e.PropertyName == "IntervalOfUpdate") { UpdateIntervalAndStart(); //_logger.Add("Периодичность обновления: " + IntervalOfUpdateConverter.Parse(_setting.IntervalOfUpdate)); _logger.Add(_setting.IntervalOfUpdate == 0 ? "Периодичность проверок обновлений остановлена в настройках" : "Периодичность проверок обновлений запущена"); } }; TimerBasedAuthorsSaver.StartMonitoring(false); }
public static void Init(Setting setting, Logger logger) { _setting = setting; _logger = logger; // в зависимости от того, используем БД или нет, грузим данные из разных мест if (setting.UseDatabase) { MainWindow.MainForm.InitializeDatabase(false); LoadDataFromDatabase(); } else { LoadDataFromXml(); } ClearAuthorsChengedStatus(); Authors.ListChanged += ((o, e) => Refresh()); OutputCollection = new ObservableCollection <object>(); Refresh(); _updater = new Updater(_setting, _logger); _updater.UpdaterComplete += UpdaterComplete; #if !DEBUG //if (!_setting.UseGoogle) // если указано синхронизироваться с гуглом, не запускаем сразу обновление, чтобы синхронизации успела отработать и скачать возможные изменени UpdateAuthors(); #endif #if !DEBUG // if (!_setting.UseGoogle) _updateTimer = new Timer { Interval = 3600000, AutoReset = false }; //else // если используем гугл, то запускаем проверку обновления через 10 минут // _updateTimer = new Timer {Interval = 60000 * 10, AutoReset = false}; #else _updateTimer = new Timer { Interval = 60000, AutoReset = false }; #endif _updateTimer.Elapsed += (o, e) => UpdateAuthors(); _setting.PropertyChanged += (o, e) => { if (e.PropertyName == "IntervalOfUpdate") { UpdateIntervalAndStart(); _logger.Add("Периодичность обновления: " + IntervalOfUpdateConverter.Parse(_setting.IntervalOfUpdate)); } //else if (e.PropertyName=="UseGoogle") { //if (_setting.UseGoogle) // StartGoogleSync(); //else // StopGoogleSync(); } }; TimerBasedAuthorsSaver.StartMonitoring(false); // если указано синхронизироваться с Google //if (_setting.UseGoogle) //{ // StartGoogleSync(); // _updateTimer.Start(); // ручками толкаем таймер, так как мы пропустили этап обновлений, где он запускается //} }