Пример #1
0
        /// <summary>
        /// Применение обновлений
        /// </summary>
        public void ApplyUpdate(ETLUpdateRecord rec, ETLHistory history)
        {
            ETLProcess prc = pumps.FirstOrDefault(p => p.ProgramID == rec.ProgramID);

            // Копирование файлов в необходимые директории
            if (!string.IsNullOrEmpty(rec.Config))
            {
                MoveFile(rec.Config, settings.UpdatesPath, settings.ProgramsPath);

                // Обноление конфигурации загруженных в реестр закачек или добавление новой
                string configFile = Path.Combine(settings.ProgramsPath, rec.Config);
                if (prc == null)
                {
                    pumps.Add(new ETLProcess(configFile, history));
                }
                else
                {
                    prc.Init(configFile);
                }
            }

            if (!string.IsNullOrEmpty(rec.Module))
            {
                // Модуль
                MoveFile(rec.Module, settings.UpdatesPath, settings.ModulesPath);

                // Отладочные данные
                MoveFile(rec.Module.Replace("dll", "pdb"), settings.UpdatesPath, settings.ModulesPath);
            }

            // Удаление применённого обновления из списка доступных
            Updates.Remove(rec.ProgramID);

            // Событие обновления
            OnUpdate?.Invoke(this, new UpdateEventArgs {
                UpdateInfo = rec
            });
        }
Пример #2
0
 public ETLProcess(string fileName, ETLHistory etlHistory)
 {
     history = etlHistory;
     Init(fileName);
 }