JobQueueInfo/VI.Tools.JobQueueInfo/DCJobErrors.cs
Decompiler Source FileJobQueueInfo.DCJobErrorsDecompiled Source
Interpretation
- Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.
Relations
- CallMethod: SetStartAt at line 1045
- CallMethod: ResetOverlimit at line 1139
- CallMethod: ResetFrozen at line 1171
Typed Edges
- No typed edges extracted for this source.
References
- No direct source references extracted.
Referenced By
- No direct source references extracted.
C# source-derived context
Generated by pattern extraction from the decompiled C# source and decompile index. This is factual source evidence, not inferred behavior.
reads entity values writes entity values references DB/Dialog objects Job/process related markers
Summary: classes DCJobErrors; methods SelectJob, RefreshData, Dispose, OnHandleDestroyed, InitializeComponent, _LoadFormSettings; references ESet, JobChain, JobHistory, JobQueue; markers reads entity values, writes entity values, references DB/Dialog objects, Job/process related markers
Classes
DCJobErrorsMethods
- SelectJob
- RefreshData
- Dispose
- OnHandleDestroyed
- InitializeComponent
- _LoadFormSettings
- _SaveFormSettings
- _ClearTree
- _InsertRootJob
- _InsertBasisObjects
- _InsertObjectChains
- _InsertObjectHistory
- _DisableJobMonitoring
- _InsertQueueJobs
- _InsertQueueJobsOfTree
- _InsertQueueJobsOfTreeSub
- _InsertHistoryJobs
- _InsertHistoryJobsOfTree
- _InsertHistoryJobsOfTreeSub
- _RefreshNode
- _ParseTreeProcess
- _ParseTreeProcess_Sub
- _ParseTreeProcess_Disable
- _ParseTreeProcess_NodeState
- _DeleteJobChain
- _SetJobStartTime
- _SetJobPriority
- _SetJobDefrost
- _SetJobOverLimit
- _SetJobContinue
- _GetChainRoot
- _RefreshJobsOfTree
- _RemoveChainFromTree
- _ConfigureColumns
- menuConfigColumns_Click
- _TranslateForm
- cmPopup_Opening
- tmrMonitor_Tick
- mnuPopup_Monitor_Click
- mnuPopup_ReactivateJob_Click
- mnuPopup_Continue
- tlcJobErrors_KeyUp
- tlcJobErrors_KeyDown
- viReset
- viActivate
- tlcJobErrors_NodeExpanding
- tlcJobErrors_SelectedNodeChanged
- clsMain_ConnectionChanged
- clsMain_LayoutChanged
- _GetSelectNodeState
- _GetSelectNode
- ObjectNodesProcessEntry
- _SetObjectText
- Activated
- viCC_CommandsUpdating
- viCC_ExecuteCommand
DB/Dialog object references
OIM key/entity markers
UID_Tree UID_Job UID_JobSuccess UID_JobErrorAPI/entity calls
GetValue CreateSingle PutValue CreateSqlExecutor CreateSingle From SourceRegistrations / handlers
None extracted.
Complete Source
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Collections.ObjectModel;5using System.ComponentModel;6using System.Data;7using System.Drawing;8using System.Runtime.CompilerServices;9using System.Threading;10using System.Windows.Forms;11using VI.Base;12using VI.CommonDialogs;13using VI.Controls;14using VI.Controls.Base;15using VI.DB;16using VI.DB.Entities;17using VI.DB.Filters;18using VI.DB.Sync;19using VI.FormBase;20using VI.FormBase.CommandCenter;21using VI.FormBase.Help;22using VI.FormBase.Threading;23using VI.UI.Base.Images;2425namespace VI.Tools.JobQueueInfo;2627internal class DCJobErrors : DCBase28{29 private ColumnHeader columnHeader1;3031 private ContextMenuStrip cmPopup;3233 private ToolStripMenuItem mnuPopup_ConfigColumns;3435 private ToolStripMenuItem mnuPopup_Monitor;3637 private Timer tmrMonitor;3839 private IContainer components;4041 private TreeListNode _tlnMonitor;4243 private TreeListControl tlcJobErrors;4445 private ToolStripMenuItem mnuPopup_Defrost;4647 private ToolStripMenuItem mnuPopup_ContinueSuccess;4849 private ToolStripMenuItem mnuPopup_ContinueError;5051 private string _filter = string.Empty;5253 private UserFilter _userFilter;5455 private ToolStripMenuItem mnuPopup_ShowError;5657 private CommandCenter viCC;5859 private Command cmdShowError;6061 private readonly AsynchronousQueue<TreeListNode> _objectNodes;6263 [CompilerGenerated]64 private EventHandler m_ProcessUpdated;6566 [CompilerGenerated]67 private EventHandler m_FilterChanged;6869 [DefaultValue(null)]70 [DesignerSerializationVisibility(/*Could not decode attribute arguments.*/)]71 public UserFilter Filter72 {73 get74 {75 return _userFilter;76 }77 set78 {79 _userFilter = value;80 _filter = frmMain.GetWhereClause(_userFilter);81 _InsertRootJob();82 EventHandler obj = this.FilterChanged;83 if (obj != null)84 {85 obj.Invoke((object)this, EventArgs.Empty);86 }87 }88 }8990 public event EventHandler ProcessUpdated91 {92 [CompilerGenerated]93 add94 {95 //IL_0010: Unknown result type (might be due to invalid IL or missing references)96 //IL_0016: Expected O, but got Unknown97 EventHandler val = this.m_ProcessUpdated;98 EventHandler val2;99 do100 {101 val2 = val;102 EventHandler val3 = (EventHandler)System.Delegate.Combine((System.Delegate)(object)val2, (System.Delegate)(object)value);103 val = Interlocked.CompareExchange<EventHandler>(ref this.m_ProcessUpdated, val3, val2);104 }105 while (val != val2);106 }107 [CompilerGenerated]108 remove109 {110 //IL_0010: Unknown result type (might be due to invalid IL or missing references)111 //IL_0016: Expected O, but got Unknown112 EventHandler val = this.m_ProcessUpdated;113 EventHandler val2;114 do115 {116 val2 = val;117 EventHandler val3 = (EventHandler)System.Delegate.Remove((System.Delegate)(object)val2, (System.Delegate)(object)value);118 val = Interlocked.CompareExchange<EventHandler>(ref this.m_ProcessUpdated, val3, val2);119 }120 while (val != val2);121 }122 }123124 public event EventHandler FilterChanged125 {126 [CompilerGenerated]127 add128 {129 //IL_0010: Unknown result type (might be due to invalid IL or missing references)130 //IL_0016: Expected O, but got Unknown131 EventHandler val = this.m_FilterChanged;132 EventHandler val2;133 do134 {135 val2 = val;136 EventHandler val3 = (EventHandler)System.Delegate.Combine((System.Delegate)(object)val2, (System.Delegate)(object)value);137 val = Interlocked.CompareExchange<EventHandler>(ref this.m_FilterChanged, val3, val2);138 }139 while (val != val2);140 }141 [CompilerGenerated]142 remove143 {144 //IL_0010: Unknown result type (might be due to invalid IL or missing references)145 //IL_0016: Expected O, but got Unknown146 EventHandler val = this.m_FilterChanged;147 EventHandler val2;148 do149 {150 val2 = val;151 EventHandler val3 = (EventHandler)System.Delegate.Remove((System.Delegate)(object)val2, (System.Delegate)(object)value);152 val = Interlocked.CompareExchange<EventHandler>(ref this.m_FilterChanged, val3, val2);153 }154 while (val != val2);155 }156 }157158 public DCJobErrors()159 {160 //IL_0050: Unknown result type (might be due to invalid IL or missing references)161 //IL_005a: Expected O, but got Unknown162 //IL_0066: Unknown result type (might be due to invalid IL or missing references)163 //IL_0070: Expected O, but got Unknown164 InitializeComponent();165 _TranslateForm();166 _objectNodes = new AsynchronousQueue<TreeListNode>("ObjekteNameQueue");167 _objectNodes.ProcessEntry += ObjectNodesProcessEntry;168 clsMain.Instance.ConnectionChanged += new EventHandler(clsMain_ConnectionChanged);169 clsMain.Instance.LayoutChanged += new EventHandler(clsMain_LayoutChanged);170 tlcJobErrors.ImageList = StockImageList.Small;171 }172173 public new void SelectJob(string strUID_Job)174 {175 if (((Dictionary<string, JobBase>)base.Jobs).ContainsKey(strUID_Job))176 {177 clsMain.Instance.CurrentJob = base.Jobs[strUID_Job];178 }179 }180181 public void RefreshData(TreeListNode tlNode)182 {183 if (tlNode != null)184 {185 _RefreshNode(tlNode);186 }187 else188 {189 _InsertRootJob();190 }191 }192193 protected override void Dispose(bool disposing)194 {195 //IL_0039: Unknown result type (might be due to invalid IL or missing references)196 //IL_0043: Expected O, but got Unknown197 //IL_004f: Unknown result type (might be due to invalid IL or missing references)198 //IL_0059: Expected O, but got Unknown199 _objectNodes.ProcessEntry -= ObjectNodesProcessEntry;200 _objectNodes.Clear();201 _objectNodes.Dispose();202 clsMain.Instance.ConnectionChanged -= new EventHandler(clsMain_ConnectionChanged);203 clsMain.Instance.LayoutChanged -= new EventHandler(clsMain_LayoutChanged);204 if (disposing && components != null)205 {206 ((System.IDisposable)components).Dispose();207 }208 ((ContainerControl)this).Dispose(disposing);209 }210211 protected override void OnHandleDestroyed(EventArgs e)212 {213 _SaveFormSettings();214 ((Control)this).OnHandleDestroyed(e);215 }216217 private void InitializeComponent()218 {219 //IL_0001: Unknown result type (might be due to invalid IL or missing references)220 //IL_000b: Expected O, but got Unknown221 //IL_000c: Unknown result type (might be due to invalid IL or missing references)222 //IL_0016: Expected O, but got Unknown223 //IL_001d: Unknown result type (might be due to invalid IL or missing references)224 //IL_0027: Expected O, but got Unknown225 //IL_0028: Unknown result type (might be due to invalid IL or missing references)226 //IL_0032: Expected O, but got Unknown227 //IL_0033: Unknown result type (might be due to invalid IL or missing references)228 //IL_003d: Expected O, but got Unknown229 //IL_003e: Unknown result type (might be due to invalid IL or missing references)230 //IL_0048: Expected O, but got Unknown231 //IL_0049: Unknown result type (might be due to invalid IL or missing references)232 //IL_0053: Expected O, but got Unknown233 //IL_0054: Unknown result type (might be due to invalid IL or missing references)234 //IL_005e: Expected O, but got Unknown235 //IL_005f: Unknown result type (might be due to invalid IL or missing references)236 //IL_0069: Expected O, but got Unknown237 //IL_0070: Unknown result type (might be due to invalid IL or missing references)238 //IL_007a: Expected O, but got Unknown239 //IL_0134: Unknown result type (might be due to invalid IL or missing references)240 //IL_014b: Unknown result type (might be due to invalid IL or missing references)241 //IL_0155: Expected O, but got Unknown242 //IL_0172: Unknown result type (might be due to invalid IL or missing references)243 //IL_0199: Unknown result type (might be due to invalid IL or missing references)244 //IL_01a3: Expected O, but got Unknown245 //IL_01c0: Unknown result type (might be due to invalid IL or missing references)246 //IL_01e7: Unknown result type (might be due to invalid IL or missing references)247 //IL_01f1: Expected O, but got Unknown248 //IL_020e: Unknown result type (might be due to invalid IL or missing references)249 //IL_0235: Unknown result type (might be due to invalid IL or missing references)250 //IL_023f: Expected O, but got Unknown251 //IL_025c: Unknown result type (might be due to invalid IL or missing references)252 //IL_0283: Unknown result type (might be due to invalid IL or missing references)253 //IL_028d: Expected O, but got Unknown254 //IL_02aa: Unknown result type (might be due to invalid IL or missing references)255 //IL_02d1: Unknown result type (might be due to invalid IL or missing references)256 //IL_02db: Expected O, but got Unknown257 //IL_030f: Unknown result type (might be due to invalid IL or missing references)258 //IL_0346: Unknown result type (might be due to invalid IL or missing references)259 //IL_0350: Expected O, but got Unknown260 //IL_0374: Unknown result type (might be due to invalid IL or missing references)261 //IL_03af: Unknown result type (might be due to invalid IL or missing references)262 //IL_03c0: Unknown result type (might be due to invalid IL or missing references)263 //IL_03e1: Unknown result type (might be due to invalid IL or missing references)264 //IL_0413: Unknown result type (might be due to invalid IL or missing references)265 //IL_0423: Unknown result type (might be due to invalid IL or missing references)266 //IL_0474: Unknown result type (might be due to invalid IL or missing references)267 //IL_047e: Expected O, but got Unknown268 //IL_048b: Unknown result type (might be due to invalid IL or missing references)269 //IL_0495: Expected O, but got Unknown270 //IL_04fc: Unknown result type (might be due to invalid IL or missing references)271 //IL_0506: Expected O, but got Unknown272 //IL_0514: Unknown result type (might be due to invalid IL or missing references)273 //IL_053c: Unknown result type (might be due to invalid IL or missing references)274 //IL_0551: Unknown result type (might be due to invalid IL or missing references)275 //IL_0563: Unknown result type (might be due to invalid IL or missing references)276 //IL_056d: Expected O, but got Unknown277 components = (IContainer)new Container();278 columnHeader1 = new ColumnHeader();279 cmPopup = new ContextMenuStrip(components);280 mnuPopup_ConfigColumns = new ToolStripMenuItem();281 mnuPopup_Monitor = new ToolStripMenuItem();282 mnuPopup_Defrost = new ToolStripMenuItem();283 mnuPopup_ContinueSuccess = new ToolStripMenuItem();284 mnuPopup_ContinueError = new ToolStripMenuItem();285 mnuPopup_ShowError = new ToolStripMenuItem();286 tmrMonitor = new Timer(components);287 tlcJobErrors = new TreeListControl();288 viCC = new CommandCenter(components);289 cmdShowError = new Command(components);290 ((Control)cmPopup).SuspendLayout();291 ((Control)this).SuspendLayout();292 columnHeader1.Width = 180;293 ((ToolStrip)cmPopup).Items.AddRange((ToolStripItem[])(object)new ToolStripItem[6]294 {295 (ToolStripItem)mnuPopup_ConfigColumns,296 (ToolStripItem)mnuPopup_Monitor,297 (ToolStripItem)mnuPopup_Defrost,298 (ToolStripItem)mnuPopup_ContinueSuccess,299 (ToolStripItem)mnuPopup_ContinueError,300 (ToolStripItem)mnuPopup_ShowError301 });302 ((Control)cmPopup).Name = "cmPopup";303 ((Control)cmPopup).Size = new Size(187, 136);304 ((ToolStripDropDown)cmPopup).Opening += new CancelEventHandler(cmPopup_Opening);305 ((ToolStripItem)mnuPopup_ConfigColumns).Name = "mnuPopup_ConfigColumns";306 ((ToolStripItem)mnuPopup_ConfigColumns).Size = new Size(186, 22);307 ((ToolStripItem)mnuPopup_ConfigColumns).Text = "~Configure Columns";308 ((ToolStripItem)mnuPopup_ConfigColumns).Click += new EventHandler(menuConfigColumns_Click);309 ((ToolStripItem)mnuPopup_Monitor).Name = "mnuPopup_Monitor";310 ((ToolStripItem)mnuPopup_Monitor).Size = new Size(186, 22);311 ((ToolStripItem)mnuPopup_Monitor).Text = "~Monitor JobChain";312 ((ToolStripItem)mnuPopup_Monitor).Click += new EventHandler(mnuPopup_Monitor_Click);313 ((ToolStripItem)mnuPopup_Defrost).Name = "mnuPopup_Defrost";314 ((ToolStripItem)mnuPopup_Defrost).Size = new Size(186, 22);315 ((ToolStripItem)mnuPopup_Defrost).Text = "~Defrost Job";316 ((ToolStripItem)mnuPopup_Defrost).Click += new EventHandler(mnuPopup_ReactivateJob_Click);317 ((ToolStripItem)mnuPopup_ContinueSuccess).Name = "mnuPopup_ContinueSuccess";318 ((ToolStripItem)mnuPopup_ContinueSuccess).Size = new Size(186, 22);319 ((ToolStripItem)mnuPopup_ContinueSuccess).Text = "~ContinueSuccess";320 ((ToolStripItem)mnuPopup_ContinueSuccess).Click += new EventHandler(mnuPopup_Continue);321 ((ToolStripItem)mnuPopup_ContinueError).Name = "mnuPopup_ContinueError";322 ((ToolStripItem)mnuPopup_ContinueError).Size = new Size(186, 22);323 ((ToolStripItem)mnuPopup_ContinueError).Text = "~ContinueError";324 ((ToolStripItem)mnuPopup_ContinueError).Click += new EventHandler(mnuPopup_Continue);325 viCC.SetCommand((Component)(object)mnuPopup_ShowError, cmdShowError);326 ((ToolStripItem)mnuPopup_ShowError).Name = "mnuPopup_ShowError";327 ((ToolStripItem)mnuPopup_ShowError).Size = new Size(186, 22);328 ((ToolStripItem)mnuPopup_ShowError).Text = "~ShowError";329 tmrMonitor.Interval = 2000;330 tmrMonitor.Tick += new EventHandler(tmrMonitor_Tick);331 tlcJobErrors.Appearance = new TreeListControlAppearance(paintDisabledNodesImageDisabled: true);332 tlcJobErrors.AutoExpandLimit = 50;333 ((Control)tlcJobErrors).BackColor = SystemColors.Window;334 ((Control)tlcJobErrors).ContextMenuStrip = cmPopup;335 ((Control)tlcJobErrors).Dock = (DockStyle)5;336 tlcJobErrors.HideSelection = false;337 ((Control)tlcJobErrors).Location = new Point(1, 1);338 ((Control)tlcJobErrors).Margin = new Padding(0);339 tlcJobErrors.Name = "tlcJobErrors";340 tlcJobErrors.ScrollPadding = new Padding(0);341 tlcJobErrors.SelectionMode = SelectionMode.Multi;342 tlcJobErrors.ShowRootLines = false;343 ((Control)tlcJobErrors).Size = new Size(494, 372);344 tlcJobErrors.SubTextColor = Color.Blue;345 ((Control)tlcJobErrors).TabIndex = 1;346 tlcJobErrors.SelectedNodeChanged += tlcJobErrors_SelectedNodeChanged;347 tlcJobErrors.NodeExpanding += tlcJobErrors_NodeExpanding;348 ((Control)tlcJobErrors).KeyDown += new KeyEventHandler(tlcJobErrors_KeyDown);349 ((Control)tlcJobErrors).KeyUp += new KeyEventHandler(tlcJobErrors_KeyUp);350 viCC.Commands.AddRange(new Command[1] { cmdShowError });351 viCC.ImageList = null;352 viCC.ShowTextOnToolBar = false;353 viCC.Tag = null;354 viCC.ExecuteCommand += viCC_ExecuteCommand;355 viCC.CommandsUpdating += new EventHandler(viCC_CommandsUpdating);356 cmdShowError.Properties = MappingProperties.Enabled | MappingProperties.Checked | MappingProperties.Visible;357 ((Control)this).BackColor = SystemColors.ControlDark;358 ((Control)this).Controls.Add((Control)(object)tlcJobErrors);359 ((Control)this).Name = "DCJobErrors";360 ((Control)this).Padding = new Padding(1);361 ((Control)this).Size = new Size(496, 374);362 ((Control)this).KeyUp += new KeyEventHandler(tlcJobErrors_KeyUp);363 ((Control)cmPopup).ResumeLayout(false);364 ((Control)this).ResumeLayout(false);365 }366367 private void _LoadFormSettings()368 {369 base.Columns.Load(((Control)this).Name);370 TreeListHelper.InitializeTreeColumns(tlcJobErrors, base.Columns);371 }372373 private void _SaveFormSettings()374 {375 if (tlcJobErrors.Columns.Count > 0)376 {377 base.Columns.TreeColumn.Width = tlcJobErrors.Columns[0].EffectiveWidth;378 for (int i = 1; i < tlcJobErrors.Columns.Count; i++)379 {380 ((Collection<Column>)(object)base.Columns)[i - 1].Width = tlcJobErrors.Columns[i].EffectiveWidth;381 }382 base.Columns.Save(((Control)this).Name);383 }384 }385386 private void _ClearTree()387 {388 try389 {390 tlcJobErrors.BeginUpdate();391 tlcJobErrors.Nodes.Clear();392 }393 finally394 {395 tlcJobErrors.EndUpdate();396 }397 }398399 private void _InsertRootJob()400 {401 //IL_00e9: Unknown result type (might be due to invalid IL or missing references)402 //IL_00ef: Invalid comparison between Unknown and I4403 if (clsMain.Instance.ConnectData == null)404 {405 return;406 }407 try408 {409 Cursor.Current = Cursors.WaitCursor;410 _objectNodes.Clear();411 ((Dictionary<string, JobBase>)base.Jobs).Clear();412 tlcJobErrors.BeginUpdate();413 tlcJobErrors.Nodes.Clear();414 _tlnMonitor = null;415 TreeListNode treeListNode = tlcJobErrors.Nodes.Add(LanguageManager.Instance["frmJobErrors_ColumnTree"], 192);416 treeListNode.SetData(new NodeData(NodeType.Root, "", ""));417 treeListNode.ShowExpansionIndicator = false;418 _InsertBasisObjects(treeListNode);419 treeListNode.Expand(inclSubNodes: false);420 tlcJobErrors.SelectedNode = treeListNode;421 }422 catch (System.Exception ex)423 {424 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);425 if (!string.IsNullOrEmpty(_filter) && (int)MessageBox.Show(LanguageManager.Instance["ResetFilter_Question"], LanguageManager.Instance["%Globals.QIM_ProductNameFull%"], (MessageBoxButtons)4, (MessageBoxIcon)48) == 6)426 {427 Filter = null;428 }429 }430 finally431 {432 tlcJobErrors.EndUpdate();433 Cursor.Current = Cursors.Default;434 }435 }436437 private void _InsertBasisObjects(TreeListNode tlnRoot)438 {439 SqlExecutor sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);440 ISqlFormatter sqlFormatter = clsMain.Instance.ConnectData.Connection.SqlFormatter;441 string text = sqlFormatter.Comparison("IsRootJob", true, ValType.Bool);442 if (!string.IsNullOrEmpty(_filter))443 {444 text = sqlFormatter.AndRelation(text, $"UID_Tree in ( select UID_Tree from JobQueue where {_filter} )");445 }446 string sqlStatement = "select coalesce(BasisObjectKey, '<null>'), Count(*) from JobQueue where " + text + " group by coalesce(BasisObjectKey, '<null>') order by coalesce(BasisObjectKey, '<null>') asc";447 IDataReader val = (IDataReader)(object)new CachedDataReader(sqlExecutor.SqlExecute(sqlStatement));448 try449 {450 while (val.Read())451 {452 string text2 = ((IDataRecord)val).GetString(0);453 TreeListNode treeListNode;454 if (string.IsNullOrEmpty(text2) || string.Equals(text2, "<null>"))455 {456 treeListNode = tlnRoot.Nodes.Add(LanguageManager.Instance["frmJobChains_NoBasisObjectKey"], 147);457 text2 = null;458 }459 else460 {461 DbObjectKey dbObjectKey = new DbObjectKey(text2);462 treeListNode = tlnRoot.Nodes.Add(dbObjectKey.Tablename, 147);463 }464 treeListNode.SetData(new NodeData(NodeType.Object, text2, ""));465 treeListNode.UseSubItems = false;466 treeListNode.ShowExpansionIndicator = true;467 _objectNodes.Add(treeListNode);468 }469 }470 finally471 {472 ((System.IDisposable)val)?.Dispose();473 }474 if (!tlnRoot.HasChildren && !string.IsNullOrEmpty(_filter))475 {476 TreeListNode treeListNode = tlnRoot.Nodes.Add(LanguageManager.Instance["NoResultForFilter"], 106);477 treeListNode.SetData(new NodeData(NodeType.Root, "", ""));478 treeListNode.ShowExpansionIndicator = false;479 treeListNode.UseSubItems = false;480 }481 }482483 private void _InsertObjectChains(TreeListNode tlnBasisObject)484 {485 NodeData data = tlnBasisObject.GetData();486 int num = 0;487 SqlExecutor sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);488 ISqlFormatter sqlFormatter = clsMain.Instance.ConnectData.Connection.SqlFormatter;489 string data2 = data.Data1;490 string systemIdentifier = clsMain.Instance.ConnectData.Connection.SystemIdentifier;491 string sqlStatement;492 if (!(systemIdentifier == "MSSQL"))493 {494 if (!(systemIdentifier == "ORACLE"))495 {496 if (!(systemIdentifier == "SQLite"))497 {498 throw new System.Exception($"Unknown DB-System '{clsMain.Instance.ConnectData.Connection.SystemIdentifier}' in frmJobChains._InsertJobChain");499 }500 sqlStatement = string.Concat(new string[5]501 {502 " select * from ( select xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from ",503 clsMain.Instance.QueueName,504 " where ",505 sqlFormatter.UidComparison("BasisObjectKey", data2),506 " and IsRootJob = 1 ) where 1=1 "507 });508 }509 else510 {511 sqlStatement = string.Concat(new string[6]512 {513 " select * from ( select xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from ",514 clsMain.Instance.QueueName,515 " where ",516 sqlFormatter.UidComparison("BasisObjectKey", data2),517 " and IsRootJob = 1 ) where 1=1 ",518 clsMain.Instance.ResultLimit.rlRowNum519 });520 }521 }522 else523 {524 sqlStatement = string.Concat(new string[10]525 {526 "select ",527 clsMain.Instance.ResultLimit.rlTop,528 " xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from ",529 clsMain.Instance.QueueName,530 " ",531 sqlExecutor.Connection.SqlStrings["ReadPastOption"],532 " where ",533 sqlFormatter.UidComparison("BasisObjectKey", data2),534 " and IsRootJob = 1 order by XDateInserted ",535 clsMain.Instance.ResultLimit.rlOrder536 });537 }538 try539 {540 tlcJobErrors.BeginUpdate();541 Cursor.Current = Cursors.WaitCursor;542 tlnBasisObject.Nodes.Clear();543 IDataReader val = (IDataReader)(object)new CachedDataReader(sqlExecutor.SqlExecute(sqlStatement));544 try545 {546 while (val.Read())547 {548 string caption = ((IDataRecord)val).GetDateTime(0).ToString();549 TreeListNode treeListNode = tlnBasisObject.Nodes.Add(caption, 82);550 treeListNode.SetData(new NodeData(NodeType.JobChain, ((IDataRecord)val).GetString(1), ((IDataRecord)val).GetString(2))551 {552 Job = new JobChain(((IDataRecord)val).GetString(1), val)553 });554 treeListNode.ShowExpansionIndicator = true;555 num++;556 }557 }558 finally559 {560 ((System.IDisposable)val)?.Dispose();561 }562 }563 catch (System.Exception ex)564 {565 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);566 }567 finally568 {569 tlcJobErrors.EndUpdate();570 Cursor.Current = Cursors.Default;571 }572 }573574 private void _InsertObjectHistory(TreeListNode tlnBasisObject)575 {576 NodeData data = tlnBasisObject.GetData();577 int num = 0;578 SqlExecutor sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);579 ISqlFormatter sqlFormatter = clsMain.Instance.ConnectData.Connection.SqlFormatter;580 string data2 = data.Data1;581 string systemIdentifier = clsMain.Instance.ConnectData.Connection.SystemIdentifier;582 string sqlStatement;583 if (!(systemIdentifier == "MSSQL"))584 {585 if (!(systemIdentifier == "ORACLE"))586 {587 if (!(systemIdentifier == "SQLite"))588 {589 throw new System.Exception($"Unknown DB-System '{clsMain.Instance.ConnectData.Connection.SystemIdentifier}' in frmJobChains._InsertJobChain");590 }591 sqlStatement = " select * from ( select xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from JobHistory where " + sqlFormatter.UidComparison("BasisObjectKey", data2) + " and IsRootJob = 1 ) where 1=1 ";592 }593 else594 {595 sqlStatement = " select * from ( select xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from JobHistory where " + sqlFormatter.UidComparison("BasisObjectKey", data2) + " and IsRootJob = 1 ) where 1=1 " + clsMain.Instance.ResultLimit.rlRowNum;596 }597 }598 else599 {600 sqlStatement = string.Concat(new string[6]601 {602 "select ",603 clsMain.Instance.ResultLimit.rlTop,604 " xdateinserted as xdateinserted, UID_Tree as tree, UID_Job as job from JobHistory where ",605 sqlFormatter.UidComparison("BasisObjectKey", data2),606 " and IsRootJob = 1 order by XDateInserted ",607 clsMain.Instance.ResultLimit.rlOrder608 });609 }610 try611 {612 tlcJobErrors.BeginUpdate();613 Cursor.Current = Cursors.WaitCursor;614 IDataReader val = (IDataReader)(object)new CachedDataReader(sqlExecutor.SqlExecute(sqlStatement));615 try616 {617 while (val.Read())618 {619 string caption = ((IDataRecord)val).GetDateTime(0).ToString();620 TreeListNode treeListNode = tlnBasisObject.Nodes.Add(caption, 104);621 NodeData tag = new NodeData(NodeType.HistoryJobChain, ((IDataRecord)val).GetString(1), ((IDataRecord)val).GetString(2))622 {623 Job = new JobChain(((IDataRecord)val).GetString(1), val)624 };625 treeListNode.Tag = tag;626 treeListNode.ShowExpansionIndicator = true;627 num++;628 }629 }630 finally631 {632 ((System.IDisposable)val)?.Dispose();633 }634 }635 catch (System.Exception ex)636 {637 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);638 }639 finally640 {641 tlnBasisObject.Nodes.Sort((IComparer)(object)new TreeListNodeComparerCaption());642 tlcJobErrors.EndUpdate();643 Cursor.Current = Cursors.Default;644 }645 }646647 private void _DisableJobMonitoring()648 {649 if (_tlnMonitor != null)650 {651 _tlnMonitor.ImageIndex = 82;652 tmrMonitor.Stop();653 _tlnMonitor = null;654 }655 }656657 private void _InsertQueueJobs(TreeListNode tlnJobChain, bool update)658 {659 NodeData data = tlnJobChain.GetData();660 int num = 0;661 JobQueue jobQueue = new JobQueue("");662 SqlExecutor sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);663 ISqlFormatter sqlFormatter = sqlExecutor.Connection.SqlFormatter;664 global::_003C_003Ey__InlineArray4<object> buffer = default(global::_003C_003Ey__InlineArray4<object>);665 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 0) = jobQueue.SQLColumns;666 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 1) = clsMain.Instance.QueueName;667 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 2) = sqlExecutor.Connection.SqlStrings["NoLockOption"];668 global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<global::_003C_003Ey__InlineArray4<object>, object>(ref buffer, 3) = sqlFormatter.UidComparison("UID_Tree", data.Data1);669 string sqlStatement = string.Format("select {0} from {1} {2} where {3}", global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<global::_003C_003Ey__InlineArray4<object>, object>(in buffer, 4));670 try671 {672 tlcJobErrors.BeginUpdate();673 Cursor.Current = Cursors.WaitCursor;674 if (!update)675 {676 tlnJobChain.Nodes.Clear();677 }678 IDataReader val = (IDataReader)(object)new CachedDataReader(sqlExecutor.SqlExecute(sqlStatement));679 try680 {681 while (val.Read())682 {683 string text = ((IDataRecord)val).GetString(0);684 jobQueue = new JobQueue(text, (IDataRecord)(object)val, null);685 if (((Dictionary<string, JobBase>)base.Jobs).ContainsKey(text))686 {687 base.Jobs[text] = jobQueue;688 }689 else690 {691 base.Jobs.Add(jobQueue);692 }693 num++;694 }695 if (num == 0 && update)696 {697 _DisableJobMonitoring();698 _RemoveChainFromTree(tlnJobChain);699 }700 }701 finally702 {703 ((System.IDisposable)val)?.Dispose();704 }705 if (update)706 {707 _RefreshJobsOfTree(tlnJobChain);708 }709 else710 {711 _InsertQueueJobsOfTree(tlnJobChain);712 }713 _ParseTreeProcess(tlnJobChain);714 }715 catch (System.Exception ex)716 {717 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);718 }719 finally720 {721 tlcJobErrors.EndUpdate();722 Cursor.Current = Cursors.Default;723 }724 }725726 private void _InsertQueueJobsOfTree(TreeListNode tlnJobChain)727 {728 NodeData data = tlnJobChain.GetData();729 JobBase jobBase = default(JobBase);730 if (((Dictionary<string, JobBase>)base.Jobs).TryGetValue(data.Data2, ref jobBase))731 {732 _InsertQueueJobsOfTreeSub(tlnJobChain, jobBase as JobQueue, success: true);733 }734 }735736 private void _InsertQueueJobsOfTreeSub(TreeListNode tlnParent, JobQueue job, bool success)737 {738 //IL_0055: Unknown result type (might be due to invalid IL or missing references)739 if (job != null)740 {741 NodeData nData = new NodeData742 {743 Type = NodeType.Job,744 Data1 = job.GetValue("UID_Job"),745 Job = job746 };747 TreeListNode treeListNode = tlnParent.Nodes.Add(job.GetValue("TaskName"), 109);748 treeListNode.SetData(nData);749 treeListNode.ForeColor = job.StateColor;750 treeListNode.Icon = ServerStateUI.GetStateIcon(job);751 TreeListHelper.InsertTreeColumns(treeListNode, base.Columns, job);752 string text = job.GetValue("UID_JobSuccess").String;753 JobBase jobBase = default(JobBase);754 if (!string.IsNullOrEmpty(text) && ((Dictionary<string, JobBase>)base.Jobs).TryGetValue(text, ref jobBase))755 {756 _InsertQueueJobsOfTreeSub(treeListNode, jobBase as JobQueue, success: true);757 }758 text = job.GetValue("UID_JobError").String;759 JobBase jobBase2 = default(JobBase);760 if (!string.IsNullOrEmpty(text) && ((Dictionary<string, JobBase>)base.Jobs).TryGetValue(text, ref jobBase2))761 {762 _InsertQueueJobsOfTreeSub(treeListNode, jobBase2 as JobQueue, success: false);763 }764 }765 }766767 private void _InsertHistoryJobs(TreeListNode tlnJobChain, bool update)768 {769 NodeData data = tlnJobChain.GetData();770 int num = 0;771 JobHistory jobHistory = new JobHistory("");772 SqlExecutor sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);773 ISqlFormatter sqlFormatter = sqlExecutor.Connection.SqlFormatter;774 string sqlStatement = string.Format("select {0} from JobHistory where {1}", (object)jobHistory.SQLColumns, (object)sqlFormatter.UidComparison("UID_Tree", data.Data1));775 try776 {777 tlcJobErrors.BeginUpdate();778 Cursor.Current = Cursors.WaitCursor;779 if (!update)780 {781 tlnJobChain.Nodes.Clear();782 }783 IDataReader val = (IDataReader)(object)new CachedDataReader(sqlExecutor.SqlExecute(sqlStatement));784 try785 {786 while (val.Read())787 {788 string text = ((IDataRecord)val).GetString(0);789 jobHistory = new JobHistory(text, val);790 base.Jobs[text] = jobHistory;791 num++;792 }793 if (num == 0)794 {795 _RemoveChainFromTree(tlnJobChain);796 }797 }798 finally799 {800 ((System.IDisposable)val)?.Dispose();801 }802 _InsertHistoryJobsOfTree(tlnJobChain);803 }804 catch (System.Exception ex)805 {806 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);807 }808 finally809 {810 tlcJobErrors.EndUpdate();811 Cursor.Current = Cursors.Default;812 }813 }814815 private void _InsertHistoryJobsOfTree(TreeListNode tlnJobChain)816 {817 NodeData data = tlnJobChain.GetData();818 JobBase jobBase = default(JobBase);819 if (((Dictionary<string, JobBase>)base.Jobs).TryGetValue(data.Data2, ref jobBase))820 {821 _InsertHistoryJobsOfTreeSub(tlnJobChain, jobBase as JobHistory, success: true);822 }823 }824825 private void _InsertHistoryJobsOfTreeSub(TreeListNode tlnParent, JobHistory job, bool success)826 {827 //IL_0056: Unknown result type (might be due to invalid IL or missing references)828 if (job != null)829 {830 NodeData nData = new NodeData831 {832 Type = NodeType.HistoryJob,833 Data1 = job.GetValue("UID_Job"),834 Job = job835 };836 TreeListNode treeListNode = tlnParent.Nodes.Add(job.GetValue("TaskName"), 109);837 treeListNode.SetData(nData);838 treeListNode.ForeColor = job.StateColor;839 TreeListHelper.InsertTreeColumns(treeListNode, base.Columns, job);840 bool flag = (bool)DbVal.ConvertTo(job.GetValue("WasError"), ValType.Bool);841 string text = job.GetValue("UID_JobSuccess").String;842 JobBase jobBase = default(JobBase);843 if (!string.IsNullOrEmpty(text) && !flag && ((Dictionary<string, JobBase>)base.Jobs).TryGetValue(text, ref jobBase))844 {845 _InsertHistoryJobsOfTreeSub(treeListNode, jobBase as JobHistory, success: true);846 }847 text = job.GetValue("UID_JobError").String;848 JobBase jobBase2 = default(JobBase);849 if (!string.IsNullOrEmpty(text) && flag && ((Dictionary<string, JobBase>)base.Jobs).TryGetValue(text, ref jobBase2))850 {851 _InsertHistoryJobsOfTreeSub(treeListNode, jobBase2 as JobHistory, success: false);852 }853 }854 }855856 private void _RefreshNode(TreeListNode node)857 {858 if (node == null)859 {860 return;861 }862 try863 {864 switch (node.GetData().Type)865 {866 case NodeType.Root:867 _InsertRootJob();868 break;869 case NodeType.Object:870 _InsertObjectChains(node);871 _InsertObjectHistory(node);872 break;873 case NodeType.JobChain:874 _InsertQueueJobs(node, update: true);875 break;876 case NodeType.Job:877 _InsertQueueJobs(_GetChainRoot(node), update: true);878 break;879 }880 if (this.ProcessUpdated != null)881 {882 this.ProcessUpdated.Invoke((object)this, EventArgs.Empty);883 }884 }885 catch (System.Exception ex)886 {887 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);888 }889 }890891 private void _ParseTreeProcess(TreeListNode tlnJobChain)892 {893 if (tlnJobChain.Nodes.Count == 1)894 {895 _ParseTreeProcess_Sub(tlnJobChain.Nodes[0]);896 }897 }898899 private int _ParseTreeProcess_Sub(TreeListNode tlnJob)900 {901 int num = _ParseTreeProcess_NodeState(tlnJob);902 if (tlnJob.Nodes.Count == 2)903 {904 int num2 = _ParseTreeProcess_Sub(tlnJob.Nodes[0]);905 int num3 = _ParseTreeProcess_Sub(tlnJob.Nodes[1]);906 if (num2 != num3)907 {908 if (num2 > num3)909 {910 _ParseTreeProcess_Disable(tlnJob.Nodes[1]);911 }912 else913 {914 _ParseTreeProcess_Disable(tlnJob.Nodes[0]);915 }916 }917 num = Math.Max(num, Math.Max(num2, num3));918 }919 else if (tlnJob.Nodes.Count == 1)920 {921 num = Math.Max(num, _ParseTreeProcess_Sub(tlnJob.Nodes[0]));922 }923 return num;924 }925926 private void _ParseTreeProcess_Disable(TreeListNode tlnJob)927 {928 //IL_0031: Unknown result type (might be due to invalid IL or missing references)929 System.Collections.Generic.IEnumerator<TreeListNode> enumerator = tlnJob.Nodes.GetEnumerator();930 try931 {932 while (((System.Collections.IEnumerator)enumerator).MoveNext())933 {934 TreeListNode current = enumerator.Current;935 _ParseTreeProcess_Disable(current);936 }937 }938 finally939 {940 ((System.IDisposable)enumerator)?.Dispose();941 }942 tlnJob.ForeColor = Color.Gray;943 }944945 private static int _ParseTreeProcess_NodeState(TreeListNode tlnJob)946 {947 NodeData data = tlnJob.GetData();948 int result = 0;949 if (data != null)950 {951 string text = (data.Job as JobQueue).GetValue("Ready2Exe").String.ToUpperInvariant();952 if (!(text == "TRUE"))953 {954 if (!(text == "PROCESSING"))955 {956 if (text == "FINISHED")957 {958 result = 3;959 }960 }961 else962 {963 result = 2;964 }965 }966 else967 {968 result = 1;969 }970 }971 return result;972 }973974 private void _DeleteJobChain(TreeListNode node)975 {976 SqlExecutor sqlExecutor = null;977 TreeListNode selectedNode = null;978 if (node == null || string.Compare(clsMain.Instance.ConnectData.Connection.Database.Data.GetValue("CustomerNumber").String, "12208") == 0)979 {980 return;981 }982 try983 {984 Cursor.Current = Cursors.WaitCursor;985 tlcJobErrors.BeginUpdate();986 TreeListNode treeListNode = _GetChainRoot(node);987 selectedNode = treeListNode.NextSibling;988 NodeData data = treeListNode.GetData();989 sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey);990 ISqlFormatter sqlFormatter = sqlExecutor.Connection.SqlFormatter;991 switch (data.Type)992 {993 case NodeType.JobChain:994 {995 string sqlStatement = string.Format("delete from {0} where {1}", (object)clsMain.Instance.QueueName, (object)sqlFormatter.UidComparison("UID_Tree", data.Data1));996 using (Transaction transaction2 = new Transaction(clsMain.Instance.ConnectData.Connection))997 {998 sqlExecutor.SqlExecuteNonQuery(sqlStatement);999 transaction2.Commit();1000 }1001 treeListNode.ParentNode.Nodes.Remove(treeListNode);1002 break;1003 }1004 case NodeType.JobChains:1005 {1006 string sqlStatement = string.Format("delete from {0} where {1}", (object)clsMain.Instance.QueueName, (object)sqlFormatter.Comparison("JobChainName", data.Data1, ValType.String));1007 using (Transaction transaction = new Transaction(clsMain.Instance.ConnectData.Connection))1008 {1009 sqlExecutor.SqlExecuteNonQuery(sqlStatement);1010 transaction.Commit();1011 }1012 treeListNode.ParentNode.Nodes.Remove(treeListNode);1013 break;1014 }1015 }1016 }1017 catch (System.Exception ex)1018 {1019 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1020 }1021 finally1022 {1023 tlcJobErrors.EndUpdate();1024 Cursor.Current = Cursors.Default;1025 tlcJobErrors.SelectedNode = selectedNode;1026 }1027 }10281029 private void _SetJobStartTime(TreeListNode node)1030 {1031 if (node == null)1032 {1033 return;1034 }1035 try1036 {1037 Cursor.Current = Cursors.WaitCursor;1038 tlcJobErrors.BeginUpdate();1039 NodeData data = node.GetData();1040 if (data.Type == NodeType.Job)1041 {1042 ISingleDbObject singleDbObject = clsMain.Instance.ConnectData.Connection.CreateSingle("JobQueue");1043 singleDbObject.PutValue("UID_Job", data.Data1);1044 singleDbObject.Load();1045 singleDbObject.Custom.CallMethod("SetStartAt", DbVal.DefaultValue(ValType.Date));1046 singleDbObject.Save();1047 _RefreshNode(node);1048 }1049 }1050 catch (System.Exception ex)1051 {1052 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1053 }1054 finally1055 {1056 tlcJobErrors.EndUpdate();1057 Cursor.Current = Cursors.Default;1058 }1059 }10601061 private void _SetJobPriority(TreeListNode node)1062 {1063 if (node == null)1064 {1065 return;1066 }1067 try1068 {1069 Cursor.Current = Cursors.WaitCursor;1070 tlcJobErrors.BeginUpdate();1071 NodeData data = node.GetData();1072 if (data.Type == NodeType.Job)1073 {1074 SqlExecutor sqlExecutor = (sqlExecutor = clsMain.Instance.ConnectData.Connection.CreateSqlExecutor(clsMain.Instance.ConnectData.PublicKey));1075 ISqlFormatter sqlFormatter = sqlExecutor.Connection.SqlFormatter;1076 string sqlStatement = string.Format("update {0} set Priority = Priority + 1 where {1}", (object)clsMain.Instance.QueueName, (object)sqlFormatter.UidComparison("UID_Job", data.Data1));1077 using (Transaction transaction = new Transaction(clsMain.Instance.ConnectData.Connection))1078 {1079 sqlExecutor.SqlExecuteNonQuery(sqlStatement);1080 transaction.Commit();1081 }1082 _RefreshNode(node);1083 }1084 }1085 catch (System.Exception ex)1086 {1087 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1088 }1089 finally1090 {1091 tlcJobErrors.EndUpdate();1092 Cursor.Current = Cursors.Default;1093 }1094 }10951096 private void _SetJobDefrost(TreeListNode node)1097 {1098 if (node == null)1099 {1100 return;1101 }1102 try1103 {1104 Cursor.Current = Cursors.WaitCursor;1105 tlcJobErrors.BeginUpdate();1106 NodeData data = node.GetData();1107 if (Job_ResetFrozen(data))1108 {1109 _RefreshNode(node);1110 }1111 }1112 catch (System.Exception ex)1113 {1114 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1115 }1116 finally1117 {1118 tlcJobErrors.EndUpdate();1119 Cursor.Current = Cursors.Default;1120 }1121 }11221123 private void _SetJobOverLimit(TreeListNode node)1124 {1125 if (node == null)1126 {1127 return;1128 }1129 try1130 {1131 Cursor.Current = Cursors.WaitCursor;1132 tlcJobErrors.BeginUpdate();1133 NodeData data = node.GetData();1134 if (data.Type == NodeType.Job && data.Job.IsState("OVERLIMIT"))1135 {1136 ISingleDbObject singleDbObject = clsMain.Instance.ConnectData.Connection.CreateSingle("JobQueue");1137 singleDbObject["UID_Job"].NewValue = data.Data1;1138 singleDbObject.Load();1139 singleDbObject.Custom.CallMethod("ResetOverlimit");1140 singleDbObject.Save();1141 _RefreshNode(node);1142 }1143 }1144 catch (System.Exception ex)1145 {1146 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1147 }1148 finally1149 {1150 tlcJobErrors.EndUpdate();1151 Cursor.Current = Cursors.Default;1152 }1153 }11541155 private void _SetJobContinue(TreeListNode node, bool bSuccess)1156 {1157 if (node == null)1158 {1159 return;1160 }1161 try1162 {1163 Cursor.Current = Cursors.WaitCursor;1164 tlcJobErrors.BeginUpdate();1165 NodeData data = node.GetData();1166 if (data.Type == NodeType.Job && data.Job.IsState("FROZEN"))1167 {1168 ISingleDbObject singleDbObject = clsMain.Instance.ConnectData.Connection.CreateSingle("JobQueue");1169 singleDbObject["UID_Job"].NewValue = data.Data1;1170 singleDbObject.Load();1171 singleDbObject.Custom.CallMethod("ResetFrozen", bSuccess);1172 _RefreshNode(node);1173 }1174 }1175 catch (System.Exception ex)1176 {1177 ExceptionDialog.Show(((ContainerControl)this).ParentForm, ex);1178 }1179 finally1180 {1181 tlcJobErrors.EndUpdate();1182 Cursor.Current = Cursors.Default;1183 }1184 }11851186 private TreeListNode _GetChainRoot(TreeListNode node)1187 {1188 if (node == null)1189 {1190 return null;1191 }1192 if (node.GetData().Type == NodeType.Job)1193 {1194 return _GetChainRoot(node.ParentNode);1195 }1196 return node;1197 }11981199 private void _RefreshJobsOfTree(TreeListNode tlnJobChain)1200 {1201 if (tlnJobChain.Nodes.Count > 0)1202 {1203 NodeData data = tlnJobChain.GetData();1204 JobQueue job = base.Jobs[data.Data2] as JobQueue;1205 _RefreshJobsOfTree(tlnJobChain.Nodes[0], job);1206 }1207 }12081209 private void _RefreshJobsOfTree(TreeListNode tlnJob, JobQueue job)1210 {1211 //IL_0017: Unknown result type (might be due to invalid IL or missing references)1212 NodeData data = tlnJob.GetData();1213 int num = 0;1214 TreeListHelper.InsertTreeColumns(tlnJob, base.Columns, job);1215 tlnJob.ForeColor = job.StateColor;1216 data.Job = job;1217 if (job.HasJobSuccess)1218 {1219 JobQueue job2 = base.Jobs[job.GetValue("UID_JobSuccess").String] as JobQueue;1220 _RefreshJobsOfTree(tlnJob.Nodes[num], job2);1221 num++;1222 }1223 if (job.HasJobError)1224 {1225 JobQueue job3 = base.Jobs[job.GetValue("UID_JobError").String] as JobQueue;1226 _RefreshJobsOfTree(tlnJob.Nodes[num], job3);1227 }1228 }12291230 private void _RemoveChainFromTree(TreeListNode tlnJobChain)1231 {1232 TreeListNode treeListNode = null;1233 try1234 {1235 tlcJobErrors.BeginUpdate();1236 treeListNode = tlnJobChain.NextSibling;1237 tlnJobChain.ParentNode.Nodes.Remove(tlnJobChain);1238 }1239 finally1240 {1241 if (treeListNode == null && tlcJobErrors.Nodes.Count > 0)1242 {1243 treeListNode = tlcJobErrors.Nodes[0];1244 }1245 tlcJobErrors.SelectedNode = treeListNode;1246 tlcJobErrors.EndUpdate();1247 }1248 }12491250 private void _ConfigureColumns()1251 {1252 //IL_0018: Unknown result type (might be due to invalid IL or missing references)1253 //IL_001e: Invalid comparison between Unknown and I41254 frmConfigureColumns frmConfigureColumns2 = new frmConfigureColumns(new JobQueue(""));1255 try1256 {1257 if ((int)frmConfigureColumns2.ConfigureColumns((IWin32Window)(object)this, base.Columns) == 1)1258 {1259 TreeListHelper.InitializeTreeColumns(tlcJobErrors, base.Columns);1260 _InsertRootJob();1261 }1262 }1263 finally1264 {1265 ((System.IDisposable)frmConfigureColumns2)?.Dispose();1266 }1267 }12681269 private void menuConfigColumns_Click(object sender, EventArgs e)1270 {1271 _ConfigureColumns();1272 }12731274 private void _TranslateForm()1275 {1276 LanguageManager instance = LanguageManager.Instance;1277 ((Control)this).Text = instance["frmJobChains_Caption"];1278 base.Columns.TreeColumn.Display = instance["frmJobChains_ColumnTree"];1279 ((ToolStripItem)mnuPopup_ConfigColumns).Text = instance["frmJobChains_PopUp_ConfigureColumns"];1280 ((ToolStripItem)mnuPopup_Monitor).Text = instance["frmJobChains_PopUp_MonitorJobChain"];1281 ((ToolStripItem)mnuPopup_Defrost).Text = instance["frmJobChains_PopUp_Defrost"];1282 ((ToolStripItem)mnuPopup_ContinueSuccess).Text = instance["frmJobChains_PopUp_ContinueSuccess"];1283 ((ToolStripItem)mnuPopup_ContinueError).Text = instance["frmJobChains_PopUp_ContinueError"];1284 ((ToolStripItem)mnuPopup_ShowError).Text = instance["frmJobChains_PopUp_ShowError"];1285 }12861287 private void cmPopup_Opening(object sender, EventArgs e)1288 {1289 _GetSelectNode();1290 IConnection connection = clsMain.Instance?.ConnectData?.Connection;1291 int num;1292 if (connection != null && connection.User != null)1293 {1294 num = ((!connection.User.IsReadOnly) ? 1 : 0);1295 if (num == 0)1296 {1297 goto IL_0068;1298 }1299 }1300 else1301 {1302 num = 1;1303 }1304 if (!IsAnySelectedJob(tlcJobErrors, "FROZEN"))1305 {1306 goto IL_0068;1307 }1308 int num2 = (IsAllowed(connection, "JobQueue_Frozen") ? 1 : 0);1309 goto IL_0069;1310 IL_0068:1311 num2 = 0;1312 goto IL_0069;1313 IL_0069:1314 bool flag = (byte)num2 != 0;1315 bool flag2 = num != 0 && IsAnySelectedJob(tlcJobErrors, "OVERLIMIT") && IsAllowed(connection, "JobQueue_Frozen");1316 ((ToolStripItem)mnuPopup_Defrost).Enabled = flag || flag2;1317 ((ToolStripItem)mnuPopup_ContinueSuccess).Visible = flag;1318 ((ToolStripItem)mnuPopup_ContinueError).Visible = flag;1319 viCC.UpdateCommands();1320 }13211322 private void tmrMonitor_Tick(object sender, EventArgs e)1323 {1324 if (!((Component)this).DesignMode)1325 {1326 if (_tlnMonitor == null)1327 {1328 tmrMonitor.Stop();1329 return;1330 }1331 tmrMonitor.Stop();1332 _RefreshNode(_tlnMonitor);1333 tmrMonitor.Start();1334 }1335 }13361337 private void mnuPopup_Monitor_Click(object sender, EventArgs e)1338 {1339 if (tlcJobErrors.SelectedNode != null)1340 {1341 _tlnMonitor = _GetChainRoot(tlcJobErrors.SelectedNode);1342 _tlnMonitor.ImageIndex = 208;1343 tmrMonitor.Start();1344 ((Control)tlcJobErrors).Invalidate();1345 }1346 }13471348 private void mnuPopup_ReactivateJob_Click(object sender, EventArgs e)1349 {1350 try1351 {1352 if (tlcJobErrors.SelectedNodes.Count > 20)1353 {1354 BusyDialog.MainText = "Update JobState";1355 BusyDialog.DetailText = "";1356 BusyDialog.Show();1357 }1358 foreach (TreeListNode selectedNode in tlcJobErrors.SelectedNodes)1359 {1360 NodeData data = selectedNode.GetData();1361 if (data != null)1362 {1363 if (data.Type == NodeType.Job && data.Job.IsState("FROZEN"))1364 {1365 _SetJobDefrost(selectedNode);1366 }1367 else1368 {1369 _SetJobOverLimit(selectedNode);1370 }1371 }1372 }1373 }1374 finally1375 {1376 BusyDialog.Hide();1377 }1378 }13791380 private void mnuPopup_Continue(object sender, EventArgs e)1381 {1382 //IL_0032: Unknown result type (might be due to invalid IL or missing references)1383 //IL_0038: Expected O, but got Unknown1384 try1385 {1386 if (tlcJobErrors.SelectedNodes.Count > 20)1387 {1388 BusyDialog.MainText = "Update JobState";1389 BusyDialog.DetailText = "";1390 BusyDialog.Show();1391 }1392 ArrayList val = new ArrayList();1393 foreach (TreeListNode selectedNode in tlcJobErrors.SelectedNodes)1394 {1395 val.Add((object)selectedNode);1396 }1397 foreach (TreeListNode item in val)1398 {1399 _SetJobContinue(item, sender == mnuPopup_ContinueSuccess);1400 }1401 }1402 finally1403 {1404 BusyDialog.Hide();1405 }1406 }14071408 private void tlcJobErrors_KeyUp(object sender, KeyEventArgs e)1409 {1410 //IL_0001: Unknown result type (might be due to invalid IL or missing references)1411 //IL_0006: Unknown result type (might be due to invalid IL or missing references)1412 //IL_0007: Unknown result type (might be due to invalid IL or missing references)1413 //IL_000a: Invalid comparison between Unknown and I41414 //IL_000c: Unknown result type (might be due to invalid IL or missing references)1415 //IL_000f: Invalid comparison between Unknown and I41416 Keys keyCode = e.KeyCode;1417 if ((int)keyCode != 112)1418 {1419 if ((int)keyCode == 116)1420 {1421 if (tlcJobErrors.SelectedNode != null)1422 {1423 _RefreshNode(tlcJobErrors.SelectedNode);1424 }1425 else1426 {1427 _InsertRootJob();1428 }1429 e.Handled = true;1430 }1431 }1432 else1433 {1434 HelpMgr.Instance.ShowHelp("Help\\JobQueueInfo\\Basisobjekte", showNoHelpInfo: true);1435 }1436 }14371438 private void tlcJobErrors_KeyDown(object sender, KeyEventArgs e)1439 {1440 //IL_0055: Unknown result type (might be due to invalid IL or missing references)1441 //IL_005a: Unknown result type (might be due to invalid IL or missing references)1442 //IL_005b: Unknown result type (might be due to invalid IL or missing references)1443 //IL_005e: Invalid comparison between Unknown and I41444 //IL_0060: Unknown result type (might be due to invalid IL or missing references)1445 //IL_0063: Invalid comparison between Unknown and I41446 //IL_0065: Unknown result type (might be due to invalid IL or missing references)1447 //IL_0068: Invalid comparison between Unknown and I41448 if (!e.Control || tlcJobErrors.SelectedNode == null)1449 {1450 return;1451 }1452 IConnection connection = clsMain.Instance?.ConnectData?.Connection;1453 if (connection != null && connection.User != null && connection.User.IsReadOnly)1454 {1455 return;1456 }1457 try1458 {1459 Keys keyCode = e.KeyCode;1460 if ((int)keyCode != 68)1461 {1462 if ((int)keyCode != 80)1463 {1464 if ((int)keyCode != 83)1465 {1466 return;1467 }1468 foreach (TreeListNode selectedNode in tlcJobErrors.SelectedNodes)1469 {1470 _SetJobStartTime(selectedNode);1471 }1472 e.Handled = true;1473 return;1474 }1475 foreach (TreeListNode selectedNode2 in tlcJobErrors.SelectedNodes)1476 {1477 _SetJobPriority(selectedNode2);1478 }1479 e.Handled = true;1480 }1481 else1482 {1483 _DeleteJobChain(tlcJobErrors.SelectedNode);1484 e.Handled = true;1485 }1486 }1487 catch (System.Exception exception)1488 {1489 ExceptionMgr.Instance.HandleException(exception, this);1490 }1491 }14921493 public void viReset()1494 {1495 _ClearTree();1496 }14971498 public void viActivate()1499 {1500 _InsertRootJob();1501 }15021503 private void tlcJobErrors_NodeExpanding(object sender, TreeListEventArgs args)1504 {1505 switch (args.Node.GetData().Type)1506 {1507 case NodeType.Object:1508 _InsertObjectChains(args.Node);1509 _InsertObjectHistory(args.Node);1510 break;1511 case NodeType.JobChain:1512 _InsertQueueJobs(args.Node, update: false);1513 break;1514 case NodeType.HistoryJobChain:1515 _InsertHistoryJobs(args.Node, update: false);1516 break;1517 }1518 }15191520 private void tlcJobErrors_SelectedNodeChanged(object sender, TreeListEventArgs args)1521 {1522 if (args.Node != null)1523 {1524 NodeData data = args.Node.GetData();1525 if (data.Type == NodeType.Job)1526 {1527 clsMain.Instance.CurrentJob = base.Jobs[data.Data1] as JobQueue;1528 }1529 else if (data.Type == NodeType.HistoryJob)1530 {1531 clsMain.Instance.CurrentJob = base.Jobs[data.Data1] as JobHistory;1532 }1533 else if (data.Type == NodeType.JobChain)1534 {1535 _InsertQueueJobs(args.Node, args.Node.HasChildren);1536 clsMain.Instance.CurrentJob = data.Job;1537 }1538 else1539 {1540 clsMain.Instance.CurrentJob = null;1541 }1542 }1543 else1544 {1545 clsMain.Instance.CurrentJob = null;1546 }1547 if (_tlnMonitor != _GetChainRoot(args.Node))1548 {1549 _DisableJobMonitoring();1550 }1551 }15521553 private void clsMain_ConnectionChanged(object sender, EventArgs e)1554 {1555 if (clsMain.Instance.ConnectData != null && ((Control)this).Parent != null)1556 {1557 _LoadFormSettings();1558 if (((Control)this).IsHandleCreated)1559 {1560 _InsertRootJob();1561 }1562 }1563 else1564 {1565 _DisableJobMonitoring();1566 _ClearTree();1567 }1568 }15691570 private void clsMain_LayoutChanged(object sender, EventArgs e)1571 {1572 _LoadFormSettings();1573 }15741575 private string _GetSelectNodeState()1576 {1577 if (tlcJobErrors.SelectedNode != null)1578 {1579 NodeData data = tlcJobErrors.SelectedNode.GetData();1580 ((ToolStripItem)mnuPopup_Monitor).Enabled = data.Type == NodeType.Job || data.Type == NodeType.JobChain;1581 if (data.Type == NodeType.Job)1582 {1583 return (base.Jobs[data.Data1] as JobQueue).GetValue("Ready2Exe").String.ToUpperInvariant();1584 }1585 }1586 return "";1587 }15881589 private JobQueue _GetSelectNode()1590 {1591 if (tlcJobErrors.SelectedNode != null)1592 {1593 NodeData data = tlcJobErrors.SelectedNode.GetData();1594 ((ToolStripItem)mnuPopup_Monitor).Enabled = data.Type == NodeType.Job || data.Type == NodeType.JobChain;1595 if (data.Type == NodeType.Job)1596 {1597 return base.Jobs[data.Data1] as JobQueue;1598 }1599 }1600 return null;1601 }16021603 private void ObjectNodesProcessEntry(object sender, EntryEventArgs<TreeListNode> e)1604 {1605 if (clsMain.Instance.ConnectData == null || !((Control)this).IsHandleCreated)1606 {1607 return;1608 }1609 TreeListNode entry = e.Entry;1610 NodeData data = entry.GetData();1611 string value = "";1612 try1613 {1614 if (string.IsNullOrEmpty(data.Data1))1615 {1616 return;1617 }1618 Query query = Query.From(new DbObjectKey(data.Data1)).SelectDisplays();1619 IEntityCollection collection = clsMain.Instance.ConnectData.Connection.Session.Source().GetCollection(query);1620 if (((System.Collections.Generic.IReadOnlyCollection<IEntity>)collection).Count > 0)1621 {1622 value = ((System.Collections.Generic.IReadOnlyList<IEntity>)collection)[0].Display;1623 }1624 }1625 catch1626 {1627 value = "";1628 }1629 ((Control)this).Invoke((System.Delegate)new SetStringEventHandler(_SetObjectText), new object[2]1630 {1631 entry,1632 new StringEventArgs(value)1633 });1634 }16351636 private void _SetObjectText(object sender, StringEventArgs e)1637 {1638 TreeListNode obj = (TreeListNode)sender;1639 obj.SubText = e.Value;1640 obj.Invalidate(inclSubItems: true);1641 }16421643 internal override void Activated()1644 {1645 base.Activated();1646 if (((Control)this).IsHandleCreated && tlcJobErrors.Nodes.Count == 0)1647 {1648 ((Control)this).BeginInvoke((System.Delegate)(object)new Action<object, EventArgs>(clsMain_ConnectionChanged), new object[2]1649 {1650 this,1651 EventArgs.Empty1652 });1653 }1654 }16551656 private void viCC_CommandsUpdating(object sender, EventArgs e)1657 {1658 try1659 {1660 _ = LanguageManager.Instance;1661 JobQueue jobQueue = _GetSelectNode();1662 bool flag = jobQueue != null;1663 cmdShowError.Visible = flag && jobQueue.GetValue<string>("ErrorMessages").Length > 0;1664 }1665 catch (System.Exception exception)1666 {1667 ExceptionMgr.Instance.HandleException(exception, this);1668 }1669 }16701671 private void viCC_ExecuteCommand(object sender, CommandEventArgs e)1672 {1673 try1674 {1675 if (e.Command == cmdShowError)1676 {1677 base.ShowErrorMessages(tlcJobErrors.SelectedNode);1678 }1679 }1680 catch (System.Exception exception)1681 {1682 ExceptionMgr.Instance.HandleException(exception, this);1683 }1684 finally1685 {1686 viCC.UpdateCommands();1687 }1688 }1689}1690