Пример #1
0
        /// <summary>
        /// Returns an icon, depending on the selected node.
        /// </summary>
        private string SelectDbIcon(ExportTargetConfig exportTargetConfig)
        {
            string suffix = exportTargetConfig.GeneralOptions.Active ? "" : "_inactive";

            switch (exportTargetConfig.ConnectionOptions.KnownDBMS)
            {
            case KnownDBMS.Oracle:
                return($"db_oracle{suffix}.png");

            case KnownDBMS.PostgreSQL:
                return($"db_postgresql{suffix}.png");

            case KnownDBMS.MySQL:
                return($"db_mysql{suffix}.png");

            case KnownDBMS.MSSQL:
                return($"db_mssql{suffix}.png");

            case KnownDBMS.OLEDB:
                return($"db_oledb{suffix}.png");

            default:
                return("db_oledb.png");
            }
        }
Пример #2
0
        private ArcUploadState taskUploadState;                        // the state of uploading archives according to the task


        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        public Exporter(ExportTargetConfig exporterConfig, EntityMap entityMap,
                        IServerData serverData, AppDirs appDirs, string arcDir)
        {
            this.exporterConfig = exporterConfig ?? throw new ArgumentNullException(nameof(exporterConfig));
            this.entityMap      = entityMap ?? throw new ArgumentNullException(nameof(entityMap));
            this.serverData     = serverData ?? throw new ArgumentNullException(nameof(serverData));
            this.arcDir         = arcDir ?? throw new ArgumentNullException(nameof(arcDir));

            GeneralOptions generalOptions = exporterConfig.GeneralOptions;

            dataLifetime = TimeSpan.FromSeconds(generalOptions.DataLifetime);
            string prefix = FilePrefix + "_" + generalOptions.ID.ToString("D3");

            log = new Log(Log.Formats.Simple)
            {
                FileName = Path.Combine(appDirs.LogDir, prefix + ".log")
            };
            infoFileName  = Path.Combine(appDirs.LogDir, prefix + ".txt");
            stateFileName = Path.Combine(appDirs.StorageDir, prefix + "_State.xml");
            exporterTitle = string.Format("[{0}] {1}", generalOptions.ID, generalOptions.Name);
            dataSource    = DataSourceFactory.GetDataSource(exporterConfig.ConnectionOptions);
            triggers      = new ClassifiedTriggers(exporterConfig.Triggers, dataSource);

            thread     = null;
            terminated = false;
            connStatus = ConnStatus.Undefined;

            CreateQueues();
            InitArcUploading();
        }
Пример #3
0
 /// <summary>
 /// Shows target properties.
 /// </summary>
 private void ShowGeneralOptions(ExportTargetConfig exportTargetConfig)
 {
     if (exportTargetConfig == null)
     {
         ctrlGeneralOptions.Visible = false;
     }
     else
     {
         ctrlGeneralOptions.Visible        = true;
         ctrlGeneralOptions.GeneralOptions = exportTargetConfig.GeneralOptions;
         ctrlTrigger.Visible           = false;
         ctrlConnectionOptions.Visible = false;
         ctrlArcUploadOptions.Visible  = false;
         ctrlEventTrigger.Visible      = false;
     }
 }
Пример #4
0
        /// <summary>
        /// Adds a branch to the tree.
        /// </summary>
        private void AddBranch(ExportTargetConfig exportTargetConfig, bool insertNewTarget)
        {
            TreeNode targetNode = CreateTargetNode(exportTargetConfig);

            targetNode.Text = exportTargetConfig.GeneralOptions.Name;

            if (!insertNewTarget)
            {
                tvTargets.Nodes.Add(targetNode);
            }
            else
            {
                tvTargets.Insert(null, targetNode, config.ExportTargets, exportTargetConfig);
            }

            TreeNode connectionNode = TreeViewUtils.CreateNode(exportTargetConfig.ConnectionOptions,
                                                               ChooseImageKey(exportTargetConfig.ConnectionOptions));

            connectionNode.Text = LibPhrases.ConnectionOptionsNode;
            targetNode.Nodes.Add(connectionNode);

            TreeNode triggerGroupNode = TreeViewUtils.CreateNode(exportTargetConfig.Triggers,
                                                                 ChooseImageKey(exportTargetConfig.Triggers));

            triggerGroupNode.Text = LibPhrases.TriggerGrNode;
            targetNode.Nodes.Add(triggerGroupNode);

            foreach (TriggerOptions triggerOptions in exportTargetConfig.Triggers)
            {
                TreeNode triggerNode = TreeViewUtils.CreateNode(triggerOptions,
                                                                ChooseImageKey(triggerOptions));
                triggerNode.Text = triggerOptions.Name;
                triggerGroupNode.Nodes.Add(triggerNode);
            }

            TreeNode arcUploadNode = TreeViewUtils.CreateNode(exportTargetConfig.ArcUploadOptions,
                                                              ChooseImageKey(exportTargetConfig.ArcUploadOptions));

            arcUploadNode.Text = LibPhrases.ArcUploadOptionsNode;
            targetNode.Nodes.Add(arcUploadNode);

            if (insertNewTarget)
            {
                tvTargets.SelectedNode.Expand();
            }
        }
Пример #5
0
 /// <summary>
 /// Shows data event triggers options.
 /// </summary>
 private void ShowEventTriggersProps(EventTriggerOptions eventTriggerOptions, ExportTargetConfig exportTargetConfig)
 {
     if (eventTriggerOptions == null)
     {
         ctrlEventTrigger.Visible = false;
     }
     else
     {
         ctrlEventTrigger.DbmsType = exportTargetConfig.ConnectionOptions.KnownDBMS;
         ctrlEventTrigger.Visible  = true;
         ctrlEventTrigger.Clear();
         ctrlEventTrigger.EventTriggerOptions = eventTriggerOptions;
         ctrlConnectionOptions.Visible        = false;
         ctrlGeneralOptions.Visible           = false;
         ctrlArcUploadOptions.Visible         = false;
         ctrlTrigger.Visible = false;
     }
 }
Пример #6
0
        private void btnAddTagret_Click(object sender, EventArgs e)
        {
            // add target
            ExportTargetConfig target = new ExportTargetConfig {
                Parent = config
            };

            target.GeneralOptions.ID   = GetTagetID();
            target.GeneralOptions.Name = LibPhrases.TargetName + " " + target.GeneralOptions.ID;

            // add dbconnection setting
            if (sender == btnSqlServer)
            {
                target.ConnectionOptions.KnownDBMS = KnownDBMS.MSSQL;
            }
            else if (sender == btnOracle)
            {
                target.ConnectionOptions.KnownDBMS = KnownDBMS.Oracle;
            }
            else if (sender == btnPostgreSql)
            {
                target.ConnectionOptions.KnownDBMS = KnownDBMS.PostgreSQL;
            }
            else if (sender == btnMySql)
            {
                target.ConnectionOptions.KnownDBMS = KnownDBMS.MySQL;
            }
            else if (sender == btnOleDb)
            {
                target.ConnectionOptions.KnownDBMS = KnownDBMS.OLEDB;
            }
            else
            {
                throw new ScadaException("Unknown DBMS.");
            }

            AddBranch(target, true);
            Modified = true;
            ctrlGeneralOptions.SetFocus();
        }
Пример #7
0
 /// <summary>
 /// Creates a tree node corresponding to the target.
 /// </summary>
 private TreeNode CreateTargetNode(ExportTargetConfig exportTargetConfig)
 {
     return(TreeViewUtils.CreateNode(exportTargetConfig, ChooseImageKey(exportTargetConfig)));
 }