/// <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 }); }
public ETLProcess(string fileName, ETLHistory etlHistory) { history = etlHistory; Init(fileName); }