Ejemplo n.º 1
0
        /// <summary>
        /// args[0] - id закачки;
        /// args[1] - тип конфигурации: -h - история, -s - строка -f - файл
        /// args[2] - конфигурация: в зависимости от args[1] это строка конфигурации или имя файла
        /// </summary>
        static void Main(string[] args)
        {
            try
            {
                context = new ETLContext(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config", "ETLSettings.json"));
                context.Initialize();
                context.DB.Connect();

                decimal sessNo = Convert.ToDecimal(args[0]);
                historyRecord = context.History[sessNo];

                JObject config = null;
                switch (args[1])
                {
                case "-f":
                    config = JsonCommon.Load(Path.Combine(context.Settings.Registry.ProgramsPath, args[2]));
                    break;

                case "-h":
                    config = (JObject)JsonConvert.DeserializeObject(historyRecord.config);
                    break;

                case "-s":
                    config = (JObject)JsonConvert.DeserializeObject(args[2]);
                    break;
                }

                if (config == null)
                {
                    return;
                }

                // Инициализация
                Init(sessNo, config["id"].ToString(), config["module"].ToString());

                // Выполнение
                Exec(sessNo, config);
            }
            catch (Exception ex)
            {
                Logger.WriteToTrace($"Критическая ошибка загрузки закачки: {ex}", TraceMessageKind.CriticalError);
            }
            finally
            {
                program?.Dispose();
                Logger.CloseLogFile();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Конструктор
        /// </summary>
        public ELTManager()
        {
            string baseDir = AppDomain.CurrentDomain.BaseDirectory;

            Context = new ETLContext(Path.Combine(baseDir, "Config", "ETLSettings.json"));

            // Соединение с базой
            try
            {
                Context.Initialize();
            }
            catch (Exception ex)
            {
                Logger.WriteToTrace($"Ошибка при подключении к базе: {ex}", TraceMessageKind.Error);
            }

            InitPumpsList();

            InitJWT();
            InitBroadcast();
            InitUpdateManager();
        }