/// <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"); } }
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(); }
/// <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; } }
/// <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(); } }
/// <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; } }
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(); }
/// <summary> /// Creates a tree node corresponding to the target. /// </summary> private TreeNode CreateTargetNode(ExportTargetConfig exportTargetConfig) { return(TreeViewUtils.CreateNode(exportTargetConfig, ChooseImageKey(exportTargetConfig))); }