Back to OIM Explorer

QER.Forms/QER.Forms/FormITShopDecideOrder.cs

Decompiler Source FileQER.Forms.FormITShopDecideOrderDecompiled Source

7 extracted method/event/call references in FormITShopDecideOrder.

Source: F:\Claude\.tmp\oim-decompiled-full\0994_One_Identity_Manager_QER.Forms.dll\QER.Forms\FormITShopDecideOrder.cs

Source size: 30.428 characters

Interpretation

  • Decompiled source file. Use method/event registrations and call-site extraction to connect back to DialogMethod, QBMEvent, and API layers.

Relations

  • CallMethod: MakeDecision at line 426
  • CallMethod: DirectDecision at line 543
  • CallMethod: QueryToPerson at line 580
  • CallMethod: AddAdditional at line 607
  • CallMethod: AddInsteadOf at line 633
  • CallMethod: DenyDecision at line 657
  • CallMethod: RecallQuery at line 679

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 references DB/Dialog objects IT Shop related markers

Summary: classes FormITShopDecideOrder; methods OnInit, Proxy_NodeDoubleClick, OnDesignChanged, OnResetForm, _LoadComplianceExceptions, InitializeComponent; references AccProduct, ComplianceArea, ComplianceRule, Delegation, ESet, HelperPWOCompliance; markers reads entity values, references DB/Dialog objects, IT Shop related markers

Complete Source

C#785 lines
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Data;5using System.Linq;6using VI.Base;7using VI.Controls;8using VI.Controls.Interfaces;9using VI.DB;10using VI.DB.Compatibility;11using VI.DB.DataAccess;12using VI.DB.Entities;13using VI.DB.Sync;14using VI.FormBase;15using VI.FormCustomizers;16using VI.FormTools;17using VI.ImageLibrary;18using VI.UI.Base.Controls;19using VI.UI.Base.SnapIns;2021namespace QER.Forms;2223public class FormITShopDecideOrder : BaseCustomizer24{25	private bool m_IsAssignmentOrder;2627	private bool m_FeatureAllowed_AddAdditional;2829	private bool m_FeatureAllowed_AddInsteadOf;3031	private bool m_FeatureAllowed_DenyDecision;3233	private bool m_FeatureAllowed_RecallQuery;3435	private IActivatorComponent m_ComplianceActivator;3637	private IActivatorComponent m_MainActivator;3839	private IActivatorComponent m_QueryActivator;4041	private IButton m_ButtonAddAdditional;4243	private IButton m_ButtonAddInsteadOf;4445	private IButton m_ButtonDenyDecision;4647	private IButton m_ButtonDirectOrder;4849	private IButton m_ButtonRecallQuery;5051	private IButton m_ButtonSaveQuestion;5253	private IButton m_ButtonShowAddAdditional;5455	private IButton m_ButtonShowAddInsteadOf;5657	private IButton m_ButtonShowQuery;5859	private IButton m_CommandDecideOrder;6061	private ICaptionLabel m_CaptionLabelComplianceRules;6263	private ICaptionLabel m_CaptionLabelReasonHead;6465	private ICaptionLabel m_LabelQuestion;6667	private IEdit m_EditAddAdditionalReason;6869	private IEdit m_EditAddInsteadOfReason;7071	private IEdit m_EditDisplayObjectKeyAssignment;7273	private IEdit m_EditDisplayOrg;7475	private IEdit m_EditDisplayPersonHead;7677	private IEdit m_EditMNTable;7879	private IEdit m_EditOrderDate;8081	private IEdit m_EditOrderReason;8283	private IEdit m_EditOrderState;8485	private IEdit m_EditValidFrom;8687	private IEdit m_EditValidUntil;8889	private IEdit m_EditExceptionValidUntil;9091	private IEdit m_EditValidUntilProlongation;9293	private IFormDialogComponent m_FormDialogComponent;9495	private IHorizFormBar m_HorizFormBar;9697	private IImageBox m_ImageBoxJpegPhoto;9899	private ILinkComboBox m_FKLinkUIDPersonOrdered;100101	private ILinkComboBox m_FKLinkUIDWorkdeskOrdered;102103	private ITreeListControl m_TreeListComplianceExceptions;104105	private INetTextBox m_EditQuestion;106107	private INetTextBox m_EditReasonHead;108109	private IRadioButton m_OptionAgree;110111	private IRadioButton m_OptionDefeat;112113	private ITreeComboBox m_TreeComboPersonToAddAdditional;114115	private ITreeComboBox m_TreeComboPersonToAddInsteadOf;116117	private ITreeComboBox m_TreeComboPersonToAsk;118119	private ITreeComboBox m_TreeComboUIDQERJustification;120121	private IVIPanel m_MainPanel;122123	private IObjectChangeComponent m_ObjectChangeComponent;124125	protected override void OnInit()126	{127		base.OnInit();128		try129		{130			m_ButtonAddAdditional = base.Form.GetControl<IButton>("ButtonAddAdditional");131			m_ButtonAddInsteadOf = base.Form.GetControl<IButton>("ButtonAddInsteadOf");132			m_ButtonDenyDecision = base.Form.GetControl<IButton>("ButtonDenyDecision");133			m_ButtonDirectOrder = base.Form.GetControl<IButton>("ButtonDirectOrder");134			m_ButtonRecallQuery = base.Form.GetControl<IButton>("ButtonRecallQuery");135			m_ButtonSaveQuestion = base.Form.GetControl<IButton>("ButtonSaveQuestion");136			m_ButtonShowAddAdditional = base.Form.GetControl<IButton>("ButtonShowAddAdditional");137			m_ButtonShowAddInsteadOf = base.Form.GetControl<IButton>("ButtonShowAddInsteadOf");138			m_ButtonShowQuery = base.Form.GetControl<IButton>("ButtonShowQuery");139			m_CaptionLabelComplianceRules = base.Form.GetControl<ICaptionLabel>("CaptionLabelComplianceRules");140			m_CaptionLabelReasonHead = base.Form.GetControl<ICaptionLabel>("CaptionLabelReasonHead");141			m_CommandDecideOrder = base.Form.GetControl<IButton>("CommandDecideOrder");142			m_ComplianceActivator = base.Form.GetComponent<IActivatorComponent>("ComplianceActivator");143			m_TreeListComplianceExceptions = base.Form.GetControl<ITreeListControl>("TreeListComplianceExceptions");144			m_EditAddAdditionalReason = base.Form.GetControl<IEdit>("EditAddAdditionalReason");145			m_EditAddInsteadOfReason = base.Form.GetControl<IEdit>("EditAddInsteadOfReason");146			m_EditDisplayObjectKeyAssignment = base.Form.GetControl<IEdit>("EditDisplayObjectKeyAssignment");147			m_EditDisplayOrg = base.Form.GetControl<IEdit>("EditDisplayOrg");148			m_EditDisplayPersonHead = base.Form.GetControl<IEdit>("EditDisplayPersonHead");149			m_EditMNTable = base.Form.GetControl<IEdit>("EditMNTable");150			m_EditOrderDate = base.Form.GetControl<IEdit>("EditOrderDate");151			m_EditOrderReason = base.Form.GetControl<IEdit>("EditOrderReason");152			m_EditOrderState = base.Form.GetControl<IEdit>("EditOrderState");153			m_EditQuestion = base.Form.GetControl<INetTextBox>("EditQuestion");154			m_EditReasonHead = base.Form.GetControl<INetTextBox>("EditReasonHead");155			m_EditValidFrom = base.Form.GetControl<IEdit>("EditValidFrom");156			m_EditValidUntil = base.Form.GetControl<IEdit>("EditValidUntil");157			m_EditExceptionValidUntil = base.Form.GetControl<IEdit>("EditExceptionValidUntil");158			m_EditValidUntilProlongation = base.Form.GetControl<IEdit>("EditValidUntilProlongation");159			m_FKLinkUIDPersonOrdered = base.Form.GetControl<ILinkComboBox>("FKLinkUIDPersonOrdered");160			m_FKLinkUIDWorkdeskOrdered = base.Form.GetControl<ILinkComboBox>("FKLinkUIDWorkdeskOrdered");161			m_FormDialogComponent = base.Form.GetComponent<IFormDialogComponent>("FormDialogComponent");162			m_HorizFormBar = base.Form.GetControl<IHorizFormBar>("HorizFormBar");163			m_ImageBoxJpegPhoto = base.Form.GetControl<IImageBox>("ImageBoxJpegPhoto");164			m_LabelQuestion = base.Form.GetControl<ICaptionLabel>("LabelQuestion");165			m_MainActivator = base.Form.GetComponent<IActivatorComponent>("MainActivator");166			m_MainPanel = base.Form.GetControl<IVIPanel>("MainPanel");167			m_ObjectChangeComponent = base.Form.GetComponent<IObjectChangeComponent>("ObjectChangeComponent");168			m_OptionAgree = base.Form.GetControl<IRadioButton>("OptionAgree");169			m_OptionDefeat = base.Form.GetControl<IRadioButton>("OptionDefeat");170			m_QueryActivator = base.Form.GetComponent<IActivatorComponent>("QueryActivator");171			m_TreeComboPersonToAddAdditional = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToAddAdditional");172			m_TreeComboPersonToAddInsteadOf = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToAddInsteadOf");173			m_TreeComboPersonToAsk = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToAsk");174			m_TreeComboUIDQERJustification = base.Form.GetControl<ITreeComboBox>("TreeComboUIDQERJustification");175			m_TreeListComplianceExceptions.AlternateNodeBackground = true;176			m_TreeListComplianceExceptions.ShowLines = false;177		}178		catch (System.Exception innerException)179		{180			throw new FormCustomizerException(874825, innerException, ((object)this).ToString());181		}182	}183184	private void Proxy_NodeDoubleClick(object sender, TreeListProxyEventArgs e)185	{186		try187		{188			NavigateTo(((IColElem)e.Node.Data).Create());189		}190		catch (System.Exception exception)191		{192			ExceptionMgr.Instance.HandleException(exception, this);193		}194	}195196	protected override void OnDesignChanged()197	{198		m_EditDisplayObjectKeyAssignment.Width = 800;199	}200201	protected override void OnResetForm()202	{203		base.OnResetForm();204		try205		{206			m_EditReasonHead.Focus();207		}208		catch (System.Exception innerException)209		{210			ExceptionMgr.Instance.HandleException((System.Exception)(object)new FormCustomizerException(929002, innerException), this);211		}212	}213214	private void _LoadComplianceExceptions()215	{216		ISingleDbObject dbObject = m_MainActivator.DbObject;217		if (dbObject == null)218		{219			return;220		}221		try222		{223			using (new UpdateHelper(m_TreeListComplianceExceptions))224			{225				ITreeListProxy proxy = m_TreeListComplianceExceptions.Proxy;226				proxy.Clear();227				string text = LanguageManager.Instance["QER_FormITShopDecideOrder_ComplianceExcCategory"];228				string text2 = LanguageManager.Instance["QER_FormCommon_Description"];229				string text3 = LanguageManager.Instance["QER_FormITShopDecideOrder_Rule"];230				string text4 = LanguageManager.Instance["QER_FormITShopDecideOrder_Severity"];231				string text5 = LanguageManager.Instance["QER_FormITShopDecideOrder_Notes"];232				IStatementRunner runner = base.Session.Resolve<IStatementRunner>();233				string text6 = "";234				IDataReader val = runner.SqlExecute("ITShop-ComplianceRulesForPWO", new QueryParameter[1] { QueryParameter.Create("UIDPersonWantsOrg", dbObject["UID_PersonWantsOrg"].New.String) });235				try236				{237					while (val.Read())238					{239						string text7 = ((IDataRecord)val).GetString(0);240						if (text7.Length > 0 && !string.Equals(text7, text6, (StringComparison)5))241						{242							text6 = text7;243							proxy.AddNode($"{text}: {text6}", -1);244							proxy.AddNode($"{text2}: {((IDataRecord)val).GetString(1)}", -1);245							proxy.AddNode("", -1);246						}247						string text8 = ((text6.Length > 0) ? "\t" : "");248						proxy.AddNode($"{text8}{text3}: {((IDataRecord)val).GetString(2)}", -1);249						string source = $"{text8}{text2}: {((IDataRecord)val).GetString(3)}";250						bool flag = true;251						string[] array = CommonTools.WordWrap(source, 60);252						foreach (string text9 in array)253						{254							proxy.AddNode(text8 + (flag ? "" : "    ") + text9, -1);255							flag = false;256						}257						proxy.AddNode($"{text8}{text4}: {((IDataRecord)val).GetDouble(4):N2}", -1);258						string source2 = $"{text8}{text5}: {((IDataRecord)val).GetString(5)}";259						flag = true;260						array = CommonTools.WordWrap(source2, 60);261						foreach (string text10 in array)262						{263							proxy.AddNode(text8 + (flag ? "" : "    ") + text10, -1);264							flag = false;265						}266						proxy.AddNode("", -1);267					}268				}269				finally270				{271					((System.IDisposable)val)?.Dispose();272				}273			}274		}275		catch (System.Exception exception)276		{277			ExceptionMgr.Instance.HandleException(exception, this);278		}279	}280281	private void InitializeComponent()282	{283	}284285	private void MainActivator_OnActivating(object sender, EventArgs e)286	{287		bool flag = false;288		try289		{290			ISingleDbObject dbObject = m_MainActivator.DbObject;291			if (dbObject != null)292			{293				ISqlFormatter sqlFormatter = base.SqlFormatter;294				ICaptionLabel captionLabelComplianceRules = m_CaptionLabelComplianceRules;295				bool visibleByUser = (m_TreeListComplianceExceptions.Visible = base.Session.MetaData().IsTableAvailable("ComplianceArea"));296				captionLabelComplianceRules.VisibleByUser = visibleByUser;297				string text = base.SqlFormatter.UidComparison("uid_personwantsorg", dbObject.GetValueSafe("uid_personwantsorg", "-"));298				m_ButtonDirectOrder.Enabled = base.Session.User().Uid != null && base.Session.Source().Exists("QERWorkingStep", base.SqlFormatter.AndRelation("not " + base.SqlFormatter.EmptyClause("DirectSteps", ValType.String), base.SqlFormatter.Comparison("DirectSteps", "0", ValType.String, CompareOperator.NotEqual, FormatterOptions.None), string.Format("UID_QERWorkingStep in (select UID_QERWorkingStep from PWOHelperPWO where {0})", (object)base.SqlFormatter.AndRelation(text, base.SqlFormatter.Comparison("LevelNumber", dbObject.GetValueSafe("DecisionLevel", 999), ValType.Int)))));299				m_EditExceptionValidUntil.VisibleByUser = base.Session.User().Uid != null && base.Session.Source().Exists(Query.From("PWOHelperPWO").Where(sqlFormatter.AndRelation(text, sqlFormatter.UidComparison("UID_PersonHead", base.Session.User().Uid), sqlFormatter.InClause("UID_PWODecisionRule", ValType.String, FormatterOptions.NonUnicodeLiterals, "CPL-PWODecisionRule-OC", "CPL-PWODecisionRule-OH"))).SelectNone());300				m_CommandDecideOrder.Enabled = base.Session.User().Uid != null;301				m_EditDisplayPersonHead.Text = base.Session.User().Display;302				m_EditReasonHead.Enabled = true;303				m_OptionAgree.EnabledByUser = true;304				m_OptionDefeat.EnabledByUser = true;305				m_TreeComboUIDQERJustification.Caption = base.Session.MetaData().GetTable("PersonWantsOrg").Columns["UID_QERJustification"].Display.Translated;306				m_TreeComboUIDQERJustification.SelectedParent = null;307				m_TreeComboUIDQERJustification.WhereClause = sqlFormatter.AndRelation(sqlFormatter.Comparison("IsDecisionBySystem", false, ValType.Bool), sqlFormatter.OrRelation(sqlFormatter.Comparison("JustificationType", 4, ValType.Int, CompareOperator.BitsSet), sqlFormatter.Comparison("JustificationType", 16, ValType.Int, CompareOperator.BitsSet)));308				flag = base.Session.Source().Exists("HelperPWOCompliance", text);309				_HandleAssignmentOrderMode();310				_HandleFeatures();311				ITreeComboBox treeComboPersonToAddAdditional = m_TreeComboPersonToAddAdditional;312				ITreeComboBox treeComboPersonToAddInsteadOf = m_TreeComboPersonToAddInsteadOf;313				string text2 = (m_TreeComboPersonToAsk.WhereClause = base.SqlFormatter.UidComparison("UID_Person", base.Session.User().Uid, CompareOperator.NotEqual));314				string whereClause = (treeComboPersonToAddInsteadOf.WhereClause = text2);315				treeComboPersonToAddAdditional.WhereClause = whereClause;316				DbVal value = dbObject.ObjectWalker.GetValue("FK(UID_Org).UID_AccProduct");317				m_ImageBoxJpegPhoto.DbObject = (base.Session.Source().TryGet(new DbObjectKey("AccProduct", value), out var entity) ? entity.CreateSingleDbObject(base.Session) : base.Session.GetConnection().CreateSingle("AccProduct"));318			}319		}320		finally321		{322			_ToggleMode(null);323			m_ButtonShowAddAdditional.Enabled = m_FeatureAllowed_AddAdditional;324			m_ButtonShowAddInsteadOf.Enabled = m_FeatureAllowed_AddInsteadOf;325			m_ButtonDenyDecision.Enabled = m_FeatureAllowed_DenyDecision;326			m_ButtonRecallQuery.Enabled = m_FeatureAllowed_RecallQuery;327			m_OptionAgree.Checked = true;328			ICaptionLabel captionLabelComplianceRules2 = m_CaptionLabelComplianceRules;329			bool visibleByUser = (m_TreeListComplianceExceptions.Visible = flag);330			captionLabelComplianceRules2.VisibleByUser = visibleByUser;331			_Clear();332		}333	}334335	private void _Clear()336	{337		m_TreeComboPersonToAddAdditional.SelectedParent = null;338		m_TreeComboPersonToAddInsteadOf.SelectedParent = null;339		m_EditAddAdditionalReason.Text = "";340		m_EditAddInsteadOfReason.Text = "";341		m_EditReasonHead.Text = "";342		m_EditQuestion.Text = "";343	}344345	private void _ToggleMode(IUIControl control)346	{347		m_TreeComboPersonToAsk.ParentControl.Visible = control == m_TreeComboPersonToAsk;348		m_TreeComboPersonToAddAdditional.ParentControl.Visible = control == m_TreeComboPersonToAddAdditional && m_FeatureAllowed_AddAdditional;349		m_TreeComboPersonToAddInsteadOf.ParentControl.Visible = control == m_TreeComboPersonToAddInsteadOf && m_FeatureAllowed_AddInsteadOf;350	}351352	private void _HandleFeatures()353	{354		m_FeatureAllowed_AddAdditional = false;355		m_FeatureAllowed_AddInsteadOf = false;356		m_FeatureAllowed_DenyDecision = false;357		m_FeatureAllowed_RecallQuery = false;358		ISingleDbObject dbObject = m_MainActivator.DbObject;359		if (dbObject == null)360		{361			return;362		}363		string whereClause = base.SqlFormatter.AndRelation(base.SqlFormatter.UidComparison("UID_PersonWantsOrg", dbObject.GetValue("UID_PersonWantsOrg").String), base.SqlFormatter.Comparison("LevelNumber", dbObject.GetValue("DecisionLevel").Int, ValType.Int));364		IEntityCollection collection = base.Session.Source().GetCollection(Query.From("PWOHelperPWO").Where(whereClause).Select("UID_PWODecisionRule", "UID_QERWorkingStep", "IsFromDelegation"), EntityCollectionLoadType.Slim);365		if (((System.Collections.Generic.IReadOnlyCollection<IEntity>)collection).Count != 0)366		{367			IEntityWalker provider = ((System.Collections.Generic.IReadOnlyList<IEntity>)collection)[0].CreateWalker(base.Session);368			m_FeatureAllowed_AddAdditional = provider.GetValue<bool>("FK(UID_QERWorkingStep).IsAdditionalAllowed");369			m_FeatureAllowed_AddInsteadOf = provider.GetValue<bool>("FK(UID_QERWorkingStep).IsInsteadOfAllowed");370			m_FeatureAllowed_DenyDecision = ((System.Collections.Generic.IReadOnlyList<IEntity>)collection)[0].GetValue<bool>("IsFromDelegation");371			m_FeatureAllowed_RecallQuery = string.Equals(dbObject.GetValue("UID_PersonHead").String, base.Session.User().Uid, (StringComparison)4) && dbObject.GetValue("IsReserved").Bool && Enumerable.Any<IEntity>((System.Collections.Generic.IEnumerable<IEntity>)collection, (Func<IEntity, bool>)((IEntity e) => e.GetValue<string>("UID_PWODecisionRule").EndsWith("QP", (StringComparison)5)));372		}373	}374375	private void _HandleAssignmentOrderMode()376	{377		ISingleDbObject dbObject = m_MainActivator.DbObject;378		if (dbObject != null)379		{380			m_IsAssignmentOrder = dbObject["ObjectKeyAssignment"].New.String.Length > 0;381			m_EditMNTable.VisibleByUser = m_IsAssignmentOrder;382			m_ImageBoxJpegPhoto.VisibleByUser = !m_IsAssignmentOrder;383			m_EditMNTable.Text = "";384			if (m_IsAssignmentOrder)385			{386				DbObjectKey dbObjectKey = new DbObjectKey(dbObject["ObjectKeyAssignment"].New.String);387				ISingleDbObject theObj = base.Session.Resolve<IConnection>().CreateSingle(dbObjectKey.Tablename);388				dbObjectKey.FillObject(theObj);389				m_EditMNTable.Text = base.Session.MetaData().GetTable(dbObjectKey.Tablename).Display.Translated;390			}391		}392	}393394	protected override void OnFormLoad()395	{396		m_ButtonAddAdditional.Enabled = false;397		m_ButtonAddInsteadOf.Enabled = false;398		m_EditReasonHead.Text = "";399		m_IsAssignmentOrder = false;400		m_EditMNTable.Caption = "QER_FormITShopDecideOrder_OrderedAssignmentTable";401		m_ButtonShowAddAdditional.Caption = "QER_FormITShopDecideOrder_ShowAddAdditional";402		m_ButtonShowAddInsteadOf.Caption = "QER_FormITShopDecideOrder_ShowAddInsteadOf";403		m_ButtonDenyDecision.Caption = "QER_FormITShopDecideOrder_DenyDecision";404		m_ButtonRecallQuery.Caption = "QER_FormITShopDecideOrder_RecallQuery";405		m_ButtonAddAdditional.Caption = "QER_FormCommon_Add";406		m_EditAddAdditionalReason.Caption = "QER_FormITShopDecideOrder_AddAdditionalReason";407		m_TreeComboPersonToAddAdditional.Caption = "QER_FormITShopDecideOrder_PersonToAddAdditional";408		m_ButtonAddInsteadOf.Caption = "QER_FormITShopDecideOrder_AddInsteadOf";409		m_EditAddInsteadOfReason.Caption = "QER_FormITShopDecideOrder_AddAdditionalReason";410		m_TreeComboPersonToAddInsteadOf.Caption = "QER_FormITShopDecideOrder_PersonToAddInsteadOf";411	}412413	protected override void OnFormSizeChanged()414	{415		FormTool.StretchControl(m_TreeListComplianceExceptions, ExtOrientation.Both, keepSpaceForScrollBars: true);416	}417418	private void CommandDecideOrder_OnClick(object sender, EventArgs e)419	{420		try421		{422			ISingleDbObject dbObject = m_MainActivator.DbObject;423			if (dbObject != null)424			{425				string text = m_TreeComboUIDQERJustification.SelectedParent?.GetValue<string>("UID_QERJustification");426				dbObject.Custom.CallMethod("MakeDecision", base.Session.User().Uid, m_OptionAgree.Checked, m_EditReasonHead.Text, text);427				dbObject.Save();428				dbObject.Load();429				m_EditReasonHead.Enabled = false;430				m_OptionAgree.EnabledByUser = false;431				m_OptionDefeat.EnabledByUser = false;432				m_CommandDecideOrder.Enabled = false;433				CloseForm();434			}435		}436		catch (System.Exception exception)437		{438			ExceptionMgr.Instance.HandleException(exception, this);439		}440	}441442	private void ButtonDirectOrder_Click(object sender, EventArgs e)443	{444		//IL_02b1: Unknown result type (might be due to invalid IL or missing references)445		//IL_02b6: Unknown result type (might be due to invalid IL or missing references)446		//IL_02b8: Unknown result type (might be due to invalid IL or missing references)447		//IL_02c6: Unknown result type (might be due to invalid IL or missing references)448		try449		{450			ISingleDbObject dbObject = m_MainActivator.DbObject;451			if (dbObject == null)452			{453				return;454			}455			string text = base.SqlFormatter.UidComparison("uid_personwantsorg", dbObject.GetValueSafe("uid_personwantsorg", "-"));456			string whereClause = $"UID_QERWorkingMethod\r\n                                                            in (\r\n                                                                select UID_QERWorkingMethod \r\n                                                                from QERWorkingStep \r\n                                                                where UID_QERWorkingStep \r\n                                                                in (\r\n                                                                        select UID_QERWorkingStep from PWOHelperPWO where {text}\r\n                                                                    )\r\n                                                            )";457			Query query = Query.From("QERWorkingStep").Where(whereClause).OrderBy("LevelNumber", "SubLevelNumber")458				.Select("DirectSteps", "LevelNumber", "UID_QERWorkingStep");459			IEntityCollection collection = base.Session.Source().GetCollection(query);460			int num = -1;461			int num2 = 0;462			int num3 = -999;463			int num4 = dbObject["DecisionLevel"].New.Int;464			IEntity entity = null;465			List<IEntity> val = new List<IEntity>();466			System.Collections.Generic.IEnumerator<IEntity> enumerator = ((System.Collections.Generic.IEnumerable<IEntity>)collection).GetEnumerator();467			try468			{469				while (((System.Collections.IEnumerator)enumerator).MoveNext())470				{471					IEntity current = enumerator.Current;472					int num5 = current.GetValue("LevelNumber").Int;473					if (num5 != num3)474					{475						num3 = num5;476						val.Add(current);477					}478					if (entity == null && num5 == num4)479					{480						num = num2;481						entity = current;482					}483					num2++;484				}485			}486			finally487			{488				((System.IDisposable)enumerator)?.Dispose();489			}490			if (entity == null)491			{492				return;493			}494			MultiValueProperty multiValueProperty = new MultiValueProperty(entity.GetValue<string>("DirectSteps"));495			if (multiValueProperty.Count == 0)496			{497				return;498			}499			Dictionary<string, int> val2 = new Dictionary<string, int>();500			System.Collections.Generic.IEnumerator<string> enumerator2 = ((System.Collections.Generic.IEnumerable<string>)multiValueProperty).GetEnumerator();501			try502			{503				int num6 = default(int);504				while (((System.Collections.IEnumerator)enumerator2).MoveNext())505				{506					string current2 = enumerator2.Current;507					if (!string.IsNullOrEmpty(current2) && int.TryParse(current2, ref num6))508					{509						string value = val[num + num6].GetValue<string>("UID_QERWorkingStep");510						val2.Add(value, num6);511					}512				}513			}514			finally515			{516				((System.IDisposable)enumerator2)?.Dispose();517			}518			int num7 = default(int);519			if (multiValueProperty.Count == 1)520			{521				if (!int.TryParse(multiValueProperty[0], ref num7))522				{523					return;524				}525			}526			else527			{528				Dictionary<string, object> parameters = new Dictionary<string, object>529				{530					["TableName"] = "QERWorkingStep",531					["DisplayPattern"] = BaseCustomizer.GetString("QER_FormITShopDecideOrder_DecisionLevel") + " %LevelNumber% - %LevelDisplay%",532					["WhereClause"] = base.SqlFormatter.InClause("UID_QERWorkingStep", ValType.String, FormatterOptions.NonUnicodeLiterals, (System.Collections.IEnumerable)val2.Keys),533					["HeaderImage"] = StockImage.Workflow,534					["Description"] = BaseCustomizer.GetString("QER_FormITShopDecideOrder_SelectTargetDecisionLevelDescription"),535					["ListHeaderCaption"] = BaseCustomizer.GetString("QER_FormITShopDecideOrder_PossibleDecisionLevels")536				};537				ValueTuple<UISnapInResultOption, object> val3 = FormTool.ShowForm(base.ComponentContainer, m_FormDialogComponent, m_MainPanel, "FormDialogGenericSelectObject", "QBM_QBMDialogGenericSelectObject", dbObject, BaseCustomizer.GetString("QER_FormITShopDecideOrder_SelectTargetDecisionLevel"), UISnapInDialogButtons.OkCancel, (IReadOnlyDictionary<string, object>)(object)parameters);538				if (val3.Item1 != UISnapInResultOption.Ok || !(val3.Item2 is IColElem colElem) || !val2.TryGetValue(colElem["UID_QERWorkingStep"].ToString(), ref num7))539				{540					return;541				}542			}543			dbObject.Custom.CallMethod("DirectDecision", base.Session.User().Uid, m_EditReasonHead.Text, num7);544			dbObject.Save();545			dbObject.Load();546			m_EditReasonHead.Enabled = false;547			m_OptionAgree.EnabledByUser = false;548			m_OptionDefeat.EnabledByUser = false;549			m_CommandDecideOrder.Enabled = false;550			CloseForm();551		}552		catch (System.Exception exception)553		{554			ExceptionMgr.Instance.HandleException(exception, this);555		}556	}557558	private void ComplianceActivator_Activating(object sender, EventArgs e)559	{560		try561		{562			_LoadComplianceExceptions();563		}564		catch (System.Exception exception)565		{566			ExceptionMgr.Instance.HandleException(exception, this);567		}568	}569570	private void ButtonSaveQuestion_Click(object sender, EventArgs e)571	{572		try573		{574			ISingleDbObject dbObject = m_MainActivator.DbObject;575			if (dbObject != null)576			{577				string text = m_QueryActivator.DbObject?["UID_PersonOrdered"].New.String;578				if (text != null)579				{580					dbObject.Custom.CallMethod("QueryToPerson", text, m_EditQuestion.Text);581					dbObject.Save();582					dbObject.Load();583				}584			}585		}586		catch (System.Exception exception)587		{588			ExceptionMgr.Instance.HandleException(exception, this);589		}590		finally591		{592			m_TreeComboPersonToAsk.ParentControl.Visible = false;593		}594	}595596	private void ButtonAddAdditional_Click(object sender, EventArgs e)597	{598		try599		{600			ISingleDbObject dbObject = m_MainActivator.DbObject;601			if (dbObject == null || !m_FeatureAllowed_AddAdditional || m_TreeComboPersonToAddAdditional.SelectedParent == null)602			{603				return;604			}605			using (new BusyIndicator(base.Session, BusyTime.Short))606			{607				dbObject.Custom.CallMethod("AddAdditional", base.Session.User().Uid, m_TreeComboPersonToAddAdditional.SelectedParent["UID_Person"].New.String, m_EditAddAdditionalReason.Text);608				dbObject.Save();609				dbObject.Load();610			}611		}612		catch (System.Exception exception)613		{614			ExceptionMgr.Instance.HandleException(exception, this);615		}616		finally617		{618			m_TreeComboPersonToAddAdditional.ParentControl.Visible = false;619		}620	}621622	private void ButtonAddInsteadOf_Click(object sender, EventArgs e)623	{624		try625		{626			ISingleDbObject dbObject = m_MainActivator.DbObject;627			if (dbObject == null || !m_FeatureAllowed_AddInsteadOf || m_TreeComboPersonToAddInsteadOf.SelectedParent == null)628			{629				return;630			}631			using (new BusyIndicator(base.Session, BusyTime.Short))632			{633				dbObject.Custom.CallMethod("AddInsteadOf", base.Session.User().Uid, m_TreeComboPersonToAddInsteadOf.SelectedParent["UID_Person"].New.String, m_EditAddInsteadOfReason.Text);634				dbObject.Save();635				dbObject.Load();636			}637		}638		catch (System.Exception exception)639		{640			ExceptionMgr.Instance.HandleException(exception, this);641		}642		finally643		{644			m_TreeComboPersonToAddInsteadOf.ParentControl.Visible = false;645		}646	}647648	private void ButtonDenyDecision_Click(object sender, EventArgs e)649	{650		try651		{652			ISingleDbObject dbObject = m_MainActivator.DbObject;653			if (dbObject != null && m_FeatureAllowed_DenyDecision)654			{655				using (new BusyIndicator(base.Session, BusyTime.Short))656				{657					dbObject.Custom.CallMethod("DenyDecision", base.Session.User().Uid, m_EditReasonHead.Text);658					dbObject.Save();659					dbObject.Load();660				}661				CloseForm();662			}663		}664		catch (System.Exception exception)665		{666			ExceptionMgr.Instance.HandleException(exception, this);667		}668	}669670	private void ButtonRecallQuery_Click(object sender, EventArgs e)671	{672		try673		{674			ISingleDbObject dbObject = m_MainActivator.DbObject;675			if (dbObject != null && m_FeatureAllowed_RecallQuery)676			{677				using (new BusyIndicator(base.Session, BusyTime.Short))678				{679					dbObject.Custom.CallMethod("RecallQuery", m_EditReasonHead.Text);680					dbObject.Save();681					dbObject.Load();682				}683				CloseForm();684			}685		}686		catch (System.Exception exception)687		{688			ExceptionMgr.Instance.HandleException(exception, this);689		}690	}691692	private void ButtonShowQuery_Click(object sender, EventArgs e)693	{694		try695		{696			if (m_MainActivator.DbObject != null)697			{698				m_QueryActivator.DbObject = base.Session.GetConnection().CreateSingle("PersonWantsOrg");699				_ToggleMode(m_TreeComboPersonToAsk);700			}701		}702		catch (System.Exception exception)703		{704			ExceptionMgr.Instance.HandleException(exception, this);705		}706	}707708	private void ButtonShowAddAdditional_Click(object sender, EventArgs e)709	{710		try711		{712			_ToggleMode(m_TreeComboPersonToAddAdditional);713		}714		catch (System.Exception exception)715		{716			ExceptionMgr.Instance.HandleException(exception, this);717		}718	}719720	private void ButtonShowAddInsteadOf_Click(object sender, EventArgs e)721	{722		try723		{724			_ToggleMode(m_TreeComboPersonToAddInsteadOf);725		}726		catch (System.Exception exception)727		{728			ExceptionMgr.Instance.HandleException(exception, this);729		}730	}731732	private void ObjectChangeComponent_ColumnValueChanged(object sender, ColumnEventArgs e)733	{734		try735		{736			string text = e.Column.Columnname.ToLowerInvariant();737			if (!(text == "validuntilprolongation"))738			{739				if (text == "isorderforworkdesk")740				{741					bool enabled = e.Column.ColDef.Enabled;742					using (new UpdateHelper(m_FKLinkUIDWorkdeskOrdered.ParentControl, ChangeType.Layout))743					{744						m_FKLinkUIDWorkdeskOrdered.VisibleByUser = enabled && e.New.Bool;745						m_FKLinkUIDPersonOrdered.VisibleByUser = enabled && !e.New.Bool;746						return;747					}748				}749			}750			else751			{752				m_EditValidUntilProlongation.VisibleByUser = e.New.Date != DbVal.MinDate;753			}754		}755		catch (System.Exception exception)756		{757			ExceptionMgr.Instance.HandleException(exception, this);758		}759	}760761	private void TreeComboPersonToAddAdditional_SelectedParentChanged(object sender, EventArgs e)762	{763		try764		{765			m_ButtonAddAdditional.Enabled = m_TreeComboPersonToAddAdditional.SelectedParent != null;766		}767		catch (System.Exception exception)768		{769			ExceptionMgr.Instance.HandleException(exception, this);770		}771	}772773	private void TreeComboPersonToAddInsteadOf_SelectedParentChanged(object sender, EventArgs e)774	{775		try776		{777			m_ButtonAddInsteadOf.Enabled = m_TreeComboPersonToAddInsteadOf.SelectedParent != null;778		}779		catch (System.Exception exception)780		{781			ExceptionMgr.Instance.HandleException(exception, this);782		}783	}784}785