Back to OIM Explorer

ATT.Forms/ATT.Forms/FormAttestationMakeDecision.cs

Decompiler Source FileATT.Forms.FormAttestationMakeDecisionDecompiled Source

2 extracted method/event/call references in FormAttestationMakeDecision.

Source: F:\Claude\.tmp\oim-decompiled-full\0031_One_Identity_Manager_ATT.Forms.dll\ATT.Forms\FormAttestationMakeDecision.cs

Source size: 44.283 characters

Interpretation

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

Relations

  • CallMethod: DenyDecision at line 873
  • CallMethod: MakeDecision at line 877

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

Summary: classes FormAttestationMakeDecision; methods OnInit, InitializeComponent, OnFormLoad, OnFormSizeChanged, OnFormUnload, Task_ShowHistory; references AttestationCase, AttestationHelper, AttestationHistory, AttestationObject, AttestationPolicy, Delegation; markers reads entity values, references DB/Dialog objects

Complete Source

C#1.052 lines
1using System;2using System.Collections;3using System.Collections.Generic;4using System.Drawing;5using System.IO;6using System.Linq;7using VI.Base;8using VI.Common.Forms.Base;9using VI.Controls;10using VI.Controls.Base;11using VI.Controls.Interfaces;12using VI.DB;13using VI.DB.DataAccess;14using VI.DB.Entities;15using VI.DB.MetaData;16using VI.DB.Sync;17using VI.FormBase;18using VI.FormBase.Collections;19using VI.FormBase.Tasks;20using VI.FormCustomizers;21using VI.FormTools;22using VI.ImageLibrary;23using VI.UI.Base.Components;24using VI.UI.Base.Controls;25using VI.UI.Base.Images;26using VI.UI.Base.SnapIns;27using VI.UI.Compatibility;2829namespace ATT.Forms;3031public class FormAttestationMakeDecision : BaseCustomizer32{33	private ITreeListProxy m_ProxyOpen;3435	private ITreeListProxy m_ProxyComplete;3637	private readonly List<string> m_ReportFiles = new List<string>();3839	private bool m_DecisionMode;4041	private bool m_FeatureAllowed_AddAdditional;4243	private bool m_FeatureAllowed_AddInsteadOf;4445	private bool m_FeatureAllowed_DenyDecision;4647	private bool m_FeatureActive;4849	private const string StructureDisplay1Pattern = "%StructureDisplay1%";5051	private const string StructureDisplay2Pattern = "%StructureDisplay2%";5253	private const string StructureDisplay3Pattern = "%StructureDisplay3%";5455	private const string PropertyInfo1Pattern = "%PropertyInfo1%";5657	private const string PropertyInfo2Pattern = "%PropertyInfo2%";5859	private const string PropertyInfo3Pattern = "%PropertyInfo3%";6061	private const string PropertyInfo4Pattern = "%PropertyInfo4%";6263	private IActivatorComponent m_MainActivator;6465	private IActivatorComponent m_PersonSelectComboActivator;6667	private IButton m_ButtonAddAdditional;6869	private IButton m_ButtonAddInsteadOf;7071	private IButton m_ButtonDecide;7273	private IButton m_ButtonQueryPerson;7475	private IButton m_ButtonShowAddAdditional;7677	private IButton m_ButtonShowAddInsteadOf;7879	private IButton m_ButtonShowQuery;8081	private IEdit m_EditAddAdditionalReason;8283	private IEdit m_EditAddInsteadOfReason;8485	private IEdit m_EditDecisionReason;8687	private IEdit m_EditDescription;8889	private IEdit m_EditQuestion;9091	private IFormDialogComponent m_FormDialogComponent;9293	private ITabControl m_TabControl;9495	private ITabPage m_TabPageComplete;9697	private ITabPage m_TabPageOpen;9899	private ITreeComboBox m_TreeComboPersonToAddAdditional;100101	private ITreeComboBox m_TreeComboPersonToAddInsteadOf;102103	private ITreeComboBox m_TreeComboPersonToQuery;104105	private ITreeComboBox m_TreeComboUIDQERJustification;106107	private ITreeListControl m_TreeListAttCases;108109	private ITreeListControl m_TreeListCompleteDecisions;110111	private IVIPanel m_MainPanel;112113	protected override void OnInit()114	{115		base.OnInit();116		try117		{118			m_ButtonAddAdditional = base.Form.GetControl<IButton>("ButtonAddAdditional");119			m_ButtonAddInsteadOf = base.Form.GetControl<IButton>("ButtonAddInsteadOf");120			m_ButtonDecide = base.Form.GetControl<IButton>("ButtonDecide");121			m_ButtonQueryPerson = base.Form.GetControl<IButton>("ButtonQueryPerson");122			m_ButtonShowAddAdditional = base.Form.GetControl<IButton>("ButtonShowAddAdditional");123			m_ButtonShowAddInsteadOf = base.Form.GetControl<IButton>("ButtonShowAddInsteadOf");124			m_ButtonShowQuery = base.Form.GetControl<IButton>("ButtonShowQuery");125			m_EditAddAdditionalReason = base.Form.GetControl<IEdit>("EditAddAdditionalReason");126			m_EditAddInsteadOfReason = base.Form.GetControl<IEdit>("EditAddInsteadOfReason");127			m_EditDecisionReason = base.Form.GetControl<IEdit>("EditDecisionReason");128			m_EditDescription = base.Form.GetControl<IEdit>("EditDescription");129			m_EditQuestion = base.Form.GetControl<IEdit>("EditQuestion");130			m_FormDialogComponent = base.Form.GetComponent<IFormDialogComponent>("FormDialogComponent");131			m_MainActivator = base.Form.GetComponent<IActivatorComponent>("MainActivator");132			m_MainPanel = base.Form.GetControl<IVIPanel>("MainPanel");133			m_PersonSelectComboActivator = base.Form.GetComponent<IActivatorComponent>("PersonSelectComboActivator");134			m_TabControl = base.Form.GetControl<ITabControl>("TabControl");135			m_TabPageComplete = base.Form.GetControl<ITabPage>("TabPageComplete");136			m_TabPageOpen = base.Form.GetControl<ITabPage>("TabPageOpen");137			m_TreeComboPersonToAddAdditional = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToAddAdditional");138			m_TreeComboPersonToAddInsteadOf = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToAddInsteadOf");139			m_TreeComboPersonToQuery = base.Form.GetControl<ITreeComboBox>("TreeComboPersonToQuery");140			m_TreeComboUIDQERJustification = base.Form.GetControl<ITreeComboBox>("TreeComboUIDQERJustification");141			m_TreeListAttCases = base.Form.GetControl<ITreeListControl>("TreeListAttCases");142			m_TreeListCompleteDecisions = base.Form.GetControl<ITreeListControl>("TreeListCompleteDecisions");143			m_ProxyOpen = m_TreeListAttCases.Proxy;144			m_ProxyComplete = m_TreeListCompleteDecisions.Proxy;145			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_PolicyOrObject", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;146			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_ProcessedDate", 100).Comparer = (IComparer)(object)new ComparableComparer();147			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_AttestationCaseText", 200, "ATT_FormAttestationMakeDecision_AttestationCaseText").Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;148			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_LastDecider", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;149			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_LastDecisionReason", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;150			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_RulerLevel", 120).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;151			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_Approve", 100).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;152			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_AttestationDeny", 100).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;153			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_AttestationDenyDecision", 100).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;154			m_ProxyOpen.AddColumn("ATT_FormAttestationMakeDecision_AttestationShowReport", 100);155			m_ProxyOpen.ColumnsSortable = true;156			m_TreeListAttCases.ImageList = StockImageList.Small;157			CommonTools.SetProperty(m_TreeListAttCases, "ImageNameList", ImageHost.StockImageNameListSmall);158			m_TreeListAttCases.AlternateNodeBackground = true;159			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_PolicyOrObject", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;160			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_ProcessedDate", 110).Comparer = (IComparer)(object)new ComparableComparer();161			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_AttestationCaseText", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;162			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_Approve", 120).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;163			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_DecisionReason", 200).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;164			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_DecisionDate", 130).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;165			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_RulerLevel", 120).Comparer = (IComparer)(object)StringComparer.OrdinalIgnoreCase;166			m_ProxyComplete.AddColumn("ATT_FormAttestationMakeDecision_AttestationShowReport", 100);167			m_ProxyComplete.ColumnsSortable = true;168			m_TreeListCompleteDecisions.ImageList = StockImageList.Small;169			CommonTools.SetProperty(m_TreeListCompleteDecisions, "ImageNameList", ImageHost.StockImageNameListSmall);170			m_TreeListCompleteDecisions.AlternateNodeBackground = true;171			m_ProxyOpen.SubItemActivated += ProxyOpen_SubItemActivated;172			m_ProxyComplete.SubItemActivated += ProxyComplete_SubItemActivated;173			m_ProxyOpen.SubItemContentChanged += ProxyOpen_SubItemContentChanged;174			m_ProxyOpen.SelectedNodeChanged += ProxyOpen_SelectedNodeChanged;175			m_ProxyComplete.SelectedNodeChanged += ProxyComplete_SelectedNodeChanged;176			m_TreeListAttCases.SelectionMode = SelectionMode.Multi;177			m_TreeListAttCases.SelectionBehavior = SelectionBehavior.NodesWithSubItems;178		}179		catch (System.Exception innerException)180		{181			throw new FormCustomizerException(874825, innerException, ((object)this).ToString());182		}183	}184185	private void InitializeComponent()186	{187	}188189	protected override void OnFormLoad()190	{191		m_ButtonDecide.Caption = "ATT_FormAttestationMakeDecision_Decide";192		m_TabPageOpen.Caption = "ATT_FormAttestationMakeDecision_TabPage_Open";193		m_TabPageComplete.Caption = "ATT_FormAttestationMakeDecision_TabPage_Complete";194		m_ButtonShowAddAdditional.Caption = "ATT_FormAttestationMakeDecision_ShowAddAdditional";195		m_ButtonShowAddInsteadOf.Caption = "ATT_FormAttestationMakeDecision_ShowAddInsteadOf";196		m_ButtonShowQuery.Caption = "ATT_FormAttestationMakeDecision_ShowQuery";197		m_ButtonAddAdditional.Caption = "ATT_FormCommon_Add";198		m_EditAddAdditionalReason.Caption = "ATT_FormAttestationMakeDecision_AddAdditionalReason";199		m_TreeComboPersonToAddAdditional.Caption = "ATT_FormAttestationMakeDecision_PersonToAddAdditional";200		m_ButtonAddInsteadOf.Caption = "ATT_FormAttestationMakeDecision_AddInsteadOf";201		m_EditAddInsteadOfReason.Caption = "ATT_FormAttestationMakeDecision_AddAdditionalReason";202		m_TreeComboPersonToAddInsteadOf.Caption = "ATT_FormAttestationMakeDecision_PersonToAddInsteadOf";203		m_ButtonQueryPerson.Caption = "ATT_FormAttestationMakeDecision_QueryPerson";204		m_EditQuestion.Caption = "ATT_FormAttestationMakeDecision_Question";205		m_TreeComboPersonToQuery.Caption = "ATT_FormAttestationMakeDecision_PersonToQuery";206		m_EditDescription.Caption = "ATT_FormAttestationMakeDecision_AttestationCaseText";207		m_DecisionMode = false;208		using (new UpdateHelper(base.Tasks))209		{210			Task task = base.Tasks["ShowHistory"];211			task.TaskMethod = Task_ShowHistory;212			task.Caption = "ATT_FormAttestationMakeDecision_Task_ShowAttestationCaseHistory";213			task.StockImage = StockImage.History;214			task.Enabled = false;215			task.Visible = true;216		}217	}218219	protected override void OnFormSizeChanged()220	{221		try222		{223			m_TreeListAttCases.ParentControl.SuspendLayout();224			FormTool.StretchControl(m_TreeListAttCases, ExtOrientation.Both, keepSpaceForScrollBars: true);225			int num = (m_DecisionMode ? 230 : 90);226			if (m_FeatureActive)227			{228				num += 120;229			}230			m_TreeListAttCases.Height -= num;231			FormTool.StretchControl(m_TreeListCompleteDecisions, ExtOrientation.Both, keepSpaceForScrollBars: true);232		}233		finally234		{235			m_TreeListAttCases.ParentControl.ResumeLayout();236		}237	}238239	protected override void OnFormUnload()240	{241		//IL_0006: Unknown result type (might be due to invalid IL or missing references)242		//IL_000b: Unknown result type (might be due to invalid IL or missing references)243		Enumerator<string> enumerator = m_ReportFiles.GetEnumerator();244		try245		{246			while (enumerator.MoveNext())247			{248				string current = enumerator.Current;249				try250				{251					File.Delete(current);252				}253				catch254				{255				}256			}257		}258		finally259		{260			((System.IDisposable)enumerator/*cast due to .constrained prefix*/).Dispose();261		}262		m_ReportFiles.Clear();263		base.OnFormUnload();264	}265266	public void Task_ShowHistory()267	{268		//IL_00fe: Unknown result type (might be due to invalid IL or missing references)269		try270		{271			if (base.Session != null)272			{273				string text = "";274				if (m_TabControl.SelectedTab == m_TabPageOpen)275				{276					text = ((m_ProxyOpen.SelectedNode != null) ? ((m_ProxyOpen.SelectedNode.Tag as string) ?? "") : "");277				}278				else if (m_TabControl.SelectedTab == m_TabPageComplete)279				{280					text = ((m_ProxyComplete.SelectedNode != null) ? ((m_ProxyComplete.SelectedNode.Tag as string) ?? "") : "");281				}282				if (text.Length != 0)283				{284					ISingleDbObject singleDbObject = base.Session.Resolve<IConnection>().CreateSingle("AttestationCase", text);285					FormTool.ShowForm(base.ComponentContainer, m_FormDialogComponent, m_MainPanel, "FormAttestationCaseHistory", "VI_Attestation_Case_History", singleDbObject, BaseCustomizer.GetString("ATT_FormAttestationMakeDecision_Task_ShowAttestationCaseHistory", singleDbObject.Display), UISnapInDialogButtons.Close);286				}287			}288		}289		catch (System.Exception innerException)290		{291			ExceptionMgr.Instance.HandleException((System.Exception)(object)new FormCustomizerException(929001, innerException, BaseCustomizer.GetString("ATT_FormAttestationMakeDecision_Task_ShowAttestationCaseHistory").Replace("&", "")), this);292		}293	}294295	private void MainActivator_OnActivating(object sender, EventArgs e)296	{297		if (base.Session == null)298		{299			return;300		}301		try302		{303			ISingleDbObject dbObject = m_MainActivator.DbObject;304			m_DecisionMode = dbObject == null || string.Equals(dbObject["UID_Person"].New.String, base.Session.User().Uid, (StringComparison)5);305			m_TreeComboUIDQERJustification.DbObject = dbObject ?? base.Session.Resolve<IConnection>().CreateSingle("DialogUserConfiguration");306			m_EditDecisionReason.Caption = base.Session.MetaData().GetTable("AttestationCase").Columns["ReasonHead"].Display.Translated;307			m_TreeComboUIDQERJustification.Caption = base.Session.MetaData().GetTable("AttestationCase").Columns["UID_QERJustification"].Display.Translated;308			m_ButtonDecide.Visible = m_DecisionMode;309			m_EditDecisionReason.VisibleByUser = m_DecisionMode;310			m_ButtonShowAddAdditional.Visible = m_DecisionMode;311			m_ButtonShowAddInsteadOf.Visible = m_DecisionMode;312			m_ButtonShowQuery.Visible = m_DecisionMode;313			m_TreeComboUIDQERJustification.VisibleByUser = m_DecisionMode;314			string value = ((dbObject != null) ? dbObject["UID_Person"].New.String : base.Session.User().Uid);315			m_PersonSelectComboActivator.DbObject = base.Session.Resolve<IConnection>().CreateSingle("DialogUserConfiguration");316			ITreeComboBox treeComboPersonToAddAdditional = m_TreeComboPersonToAddAdditional;317			ITreeComboBox treeComboPersonToAddInsteadOf = m_TreeComboPersonToAddInsteadOf;318			string text = (m_TreeComboPersonToQuery.WhereClause = base.SqlFormatter.UidComparison("UID_Person", value, CompareOperator.NotEqual));319			string whereClause = (treeComboPersonToAddInsteadOf.WhereClause = text);320			treeComboPersonToAddAdditional.WhereClause = whereClause;321			ISqlFormatter sqlFormatter = base.SqlFormatter;322			m_TreeComboUIDQERJustification.WhereClause = sqlFormatter.AndRelation(sqlFormatter.Comparison("IsDecisionBySystem", false, ValType.Bool), sqlFormatter.OrRelation(sqlFormatter.Comparison("JustificationType", 8, ValType.Int, CompareOperator.BitsSet), sqlFormatter.Comparison("JustificationType", 32, ValType.Int, CompareOperator.BitsSet)));323		}324		finally325		{326			_Clear();327			_ToggleMode(null);328			_HandleFeatures();329			_LoadAttestationCases();330			_LoadCompleteDecisions();331			if (AppData.Instance.AppType == AppType.Gui)332			{333				OnFormSizeChanged();334			}335		}336	}337338	private void _Clear()339	{340		m_TreeComboPersonToAddAdditional.SelectedParent = null;341		m_TreeComboPersonToAddInsteadOf.SelectedParent = null;342		m_TreeComboPersonToQuery.SelectedParent = null;343		m_TreeComboUIDQERJustification.SelectedParent = null;344		m_EditAddAdditionalReason.Text = "";345		m_EditAddInsteadOfReason.Text = "";346		m_EditDecisionReason.Text = "";347		m_EditQuestion.Text = "";348	}349350	private void _ToggleMode(IUIControl control)351	{352		bool flag = control == m_TreeComboPersonToQuery;353		bool flag2 = control == m_TreeComboPersonToAddAdditional && m_FeatureAllowed_AddAdditional;354		bool flag3 = control == m_TreeComboPersonToAddInsteadOf && m_FeatureAllowed_AddInsteadOf;355		m_TreeComboPersonToQuery.ParentControl.Visible = flag;356		m_TreeComboPersonToAddAdditional.ParentControl.Visible = flag2;357		m_TreeComboPersonToAddInsteadOf.ParentControl.Visible = flag3;358		m_FeatureActive = flag || flag2 || flag3;359		OnFormSizeChanged();360	}361362	private void _HandleFeatures()363	{364		m_FeatureAllowed_AddAdditional = false;365		m_FeatureAllowed_AddInsteadOf = false;366		m_FeatureAllowed_DenyDecision = false;367		bool enabled = false;368		try369		{370			ITreeListNode[] selectedNodes = m_ProxyOpen.GetSelectedNodes();371			using (new BusyIndicator(base.Session, (selectedNodes.Length > 5) ? VI.FormBase.BusyTime.Normal : VI.FormBase.BusyTime.Short))372			{373				bool flag = selectedNodes.Length != 0;374				bool flag2 = selectedNodes.Length != 0;375				bool flag3 = selectedNodes.Length != 0;376				IEntitySource source = base.Session.Source();377				ITreeListNode[] array = selectedNodes;378				foreach (ITreeListNode treeListNode in array)379				{380					string uidattcase = treeListNode.Tag as string;381					if (uidattcase != null && m_ProxyOpen.GetItem(treeListNode, "approve") != null)382					{383						Query query = Query.From(new DbObjectKey("AttestationCase", uidattcase)).Select("DecisionLevel");384						int attCaseDecisionLevel = source.GetSingleValue<int>(query);385						enabled = true;386						Query query2 = (from t in Query.From("AttestationHelper")387							where t.Column("UID_AttestationCase") == uidattcase && t.Column("LevelNumber") == attCaseDecisionLevel388							select t).Select("UID_QERWorkingStep", "IsFromDelegation");389						IEntityCollection collection = source.GetCollection(query2, EntityCollectionLoadType.Slim);390						if (((System.Collections.Generic.IReadOnlyCollection<IEntity>)collection).Count == 0)391						{392							return;393						}394						IEntity entity = ((System.Collections.Generic.IReadOnlyList<IEntity>)collection)[0];395						IEntityWalker walker = entity.CreateWalker(base.Session);396						flag = flag && (!walker.TryGetValue<bool>("FK(UID_QERWorkingStep).IsAdditionalAllowed", out var value) || value);397						flag2 = flag2 && (!walker.TryGetValue<bool>("FK(UID_QERWorkingStep).IsInsteadOfAllowed", out var value2) || value2);398						flag3 = flag3 && entity.GetValue<bool>("IsFromDelegation");399					}400				}401				m_FeatureAllowed_AddAdditional = flag;402				m_FeatureAllowed_AddInsteadOf = flag2;403				m_FeatureAllowed_DenyDecision = flag3;404			}405		}406		finally407		{408			m_ButtonShowAddAdditional.Enabled = m_FeatureAllowed_AddAdditional;409			m_ButtonShowAddInsteadOf.Enabled = m_FeatureAllowed_AddInsteadOf;410			m_ButtonShowQuery.Enabled = enabled;411			m_TreeComboPersonToQuery.ParentControl.Enabled = enabled;412			m_TreeComboPersonToAddAdditional.ParentControl.Enabled = m_FeatureAllowed_AddAdditional;413			m_TreeComboPersonToAddInsteadOf.ParentControl.Enabled = m_FeatureAllowed_AddInsteadOf;414		}415	}416417	private void _ExecuteFeature(string method, string uidperson, string reason)418	{419		ITreeListNode[] selectedNodes = m_ProxyOpen.GetSelectedNodes();420		using IUnitOfWork unitOfWork = base.Session.StartUnitOfWork();421		using (new BusyIndicator(base.Session, (selectedNodes.Length > 5) ? VI.FormBase.BusyTime.Normal : VI.FormBase.BusyTime.Short))422		{423			ITreeListNode[] array = selectedNodes;424			foreach (ITreeListNode treeListNode in array)425			{426				if (treeListNode.Tag is string primaryKeyValue && m_ProxyOpen.GetItem(treeListNode, "approve") != null)427				{428					IEntity entity = base.Session.Source().Get("AttestationCase", primaryKeyValue);429					List<object> val = new List<object>();430					if (!string.Equals(method, "QueryToPerson", (StringComparison)5))431					{432						val.Add((object)base.Session.User().Uid);433					}434					val.Add((object)uidperson);435					val.Add((object)reason);436					entity.CallMethod(method, val.ToArray());437					unitOfWork.Put(entity);438				}439			}440			unitOfWork.Commit();441		}442	}443444	private string ReplacePatterns(string input, string display1, string display2, string display3, string propInfo1, string propInfo2, string propInfo3, string propInfo4)445	{446		return input.Replace("%StructureDisplay1%", display1).Replace("%StructureDisplay2%", display2).Replace("%StructureDisplay3%", display3)447			.Replace("%PropertyInfo1%", propInfo1)448			.Replace("%PropertyInfo2%", propInfo2)449			.Replace("%PropertyInfo3%", propInfo3)450			.Replace("%PropertyInfo4%", propInfo4);451	}452453	private void _LoadAttestationCases()454	{455		//IL_05e9: Unknown result type (might be due to invalid IL or missing references)456		IUserFileService ret;457		bool flag = base.ComponentContainer.TryResolve<IUserFileService>(out ret);458		using (new UpdateHelper(m_TreeListAttCases))459		{460			m_ProxyOpen.Clear();461			m_ButtonDecide.Enabled = false;462			ISingleDbObject dbObject = m_MainActivator.DbObject;463			string text = ((dbObject != null) ? dbObject["UID_Person"].New.String : base.Session.User().Uid);464			if (base.Session == null || string.IsNullOrEmpty(text))465			{466				return;467			}468			IStatementRunner runner = base.Session.Resolve<IStatementRunner>();469			List<QueryParameter> obj = new List<QueryParameter>();470			obj.Add(new QueryParameter("UID_Person", ValType.String, text));471			using DisplayCachedDataReader displayCachedDataReader = new DisplayCachedDataReader(runner.SqlExecute("ATT-FormAttMakeDecision-ATTCases", (System.Collections.Generic.IEnumerable<QueryParameter>)obj), base.Session.MultiLanguage());472			IMetaData meta = base.Session.MetaData();473			IMetaTable table = meta.GetTable("AttestationPolicy");474			IMetaTable table2 = meta.GetTable("AttestationCase");475			IMetaTable table3 = meta.GetTable("AttestationObject");476			displayCachedDataReader.SetMetaColumn(3, table.Columns["Ident_AttestationPolicy"]);477			displayCachedDataReader.SetMetaColumn(4, table.Columns["Description"]);478			displayCachedDataReader.SetMetaColumn(6, table2.Columns["ReasonHead"]);479			displayCachedDataReader.SetMetaColumn(16, table3.Columns["UiTextGrouped1"]);480			displayCachedDataReader.SetMetaColumn(17, table3.Columns["UiTextGrouped2"]);481			displayCachedDataReader.SetMetaColumn(18, table3.Columns["UiTextGrouped3"]);482			displayCachedDataReader.SetMetaColumn(15, table3.Columns["UiText"]);483			ITreeListNode treeListNode = null;484			ITreeListNode treeListNode2 = null;485			ITreeListNode treeListNode3 = null;486			ITreeListNode treeListNode4 = null;487			ITreeListNode node = null;488			string text2 = null;489			string text3 = null;490			string text4 = null;491			string text5 = null;492			DisplayConverter displayConverter = new DisplayConverter();493			while (displayCachedDataReader.Read())494			{495				string text6 = displayCachedDataReader.GetString(2);496				string text7 = displayCachedDataReader.GetString(9);497				string text8 = displayCachedDataReader.GetString(10);498				string text9 = displayCachedDataReader.GetString(11);499				string propInfo = displayCachedDataReader.GetString(19);500				string propInfo2 = displayCachedDataReader.GetString(20);501				string propInfo3 = displayCachedDataReader.GetString(21);502				string propInfo4 = displayCachedDataReader.GetString(22);503				string text10 = displayCachedDataReader.GetString(16).Replace(Environment.NewLine, " ");504				string text11 = displayCachedDataReader.GetString(17).Replace(Environment.NewLine, " ");505				string text12 = displayCachedDataReader.GetString(18).Replace(Environment.NewLine, " ");506				string input = displayCachedDataReader.GetString(15).Replace(Environment.NewLine, " ");507				if (treeListNode == null || !string.Equals(text6, text2, (StringComparison)5))508				{509					treeListNode = m_ProxyOpen.AddNode(displayCachedDataReader.GetString(3), 16);510					treeListNode.UseSubItems = false;511					treeListNode.SubText = displayCachedDataReader.GetString(4).Replace(Environment.NewLine, " ");512					treeListNode.Tag = text6;513					treeListNode2 = null;514					treeListNode3 = null;515					treeListNode4 = null;516					node = treeListNode;517					text2 = text6;518					for (int i = 1; i < m_ProxyOpen.Columns.Length; i++)519					{520						m_ProxyOpen.AddItem(treeListNode, "");521					}522				}523				if ((treeListNode2 == null || text7 != text3) && text7.Length > 0)524				{525					treeListNode2 = m_ProxyOpen.AddNode(treeListNode, text7, 95);526					treeListNode2.UseSubItems = false;527					if (!string.IsNullOrEmpty(text10))528					{529						treeListNode2.SubText = ReplacePatterns(text10, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);530					}531					treeListNode2.Tag = text7;532					treeListNode3 = null;533					treeListNode4 = null;534					node = treeListNode2;535					text3 = text7;536				}537				if ((treeListNode3 == null || text8 != text4) && text8.Length > 0)538				{539					treeListNode3 = m_ProxyOpen.AddNode(treeListNode2 ?? treeListNode, text8, 95);540					treeListNode3.UseSubItems = false;541					if (!string.IsNullOrEmpty(text11))542					{543						treeListNode3.SubText = ReplacePatterns(text11, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);544					}545					treeListNode3.Tag = text8;546					treeListNode4 = null;547					node = treeListNode3;548					text4 = text8;549				}550				if ((treeListNode4 == null || text9 != text5) && text9.Length > 0)551				{552					treeListNode4 = m_ProxyOpen.AddNode(treeListNode3 ?? treeListNode2 ?? treeListNode, text9, 95);553					treeListNode4.UseSubItems = false;554					if (!string.IsNullOrEmpty(text12))555					{556						treeListNode4.SubText = ReplacePatterns(text12, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);557					}558					treeListNode4.Tag = text9;559					node = treeListNode4;560					text5 = text9;561				}562				ITreeListNode treeListNode5 = m_ProxyOpen.AddNode(node, displayCachedDataReader.GetString(1), 15);563				treeListNode5.Tag = displayCachedDataReader.GetString(0);564				m_ProxyOpen.AddItem(treeListNode5, displayConverter.DateToDisplayString(displayCachedDataReader.GetDateTime(7)));565				m_ProxyOpen.AddItem(treeListNode5, ReplacePatterns(input, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4));566				m_ProxyOpen.AddItem(treeListNode5, displayCachedDataReader.GetString(5));567				m_ProxyOpen.AddItem(treeListNode5, displayCachedDataReader.GetString(6));568				m_ProxyOpen.AddItem(treeListNode5, _TranslateRulerLevel(displayCachedDataReader.GetInt32(14)));569				ITreeListItemSmall treeListItemSmall = m_ProxyOpen.CreateCheckBoxItem(checkState: false, "approve");570				treeListItemSmall.Enabled = m_DecisionMode;571				m_ProxyOpen.AddItem(treeListNode5, treeListItemSmall);572				treeListItemSmall = m_ProxyOpen.CreateCheckBoxItem(checkState: false, "deny");573				treeListItemSmall.Enabled = m_DecisionMode;574				m_ProxyOpen.AddItem(treeListNode5, treeListItemSmall);575				treeListItemSmall = m_ProxyOpen.CreateCheckBoxItem(checkState: false, "denydecision");576				treeListItemSmall.Enabled = m_DecisionMode;577				m_ProxyOpen.AddItem(treeListNode5, treeListItemSmall);578				if (displayCachedDataReader.GetDateTime(8) < System.DateTime.UtcNow && displayCachedDataReader.GetDateTime(8) != DbVal.MinDate)579				{580					treeListNode5.ForeColor = Color.Red;581				}582				string text13 = displayCachedDataReader.GetString(12);583				if (flag && !string.IsNullOrEmpty(text13) && displayCachedDataReader.GetString(13).Length > 0)584				{585					string caption = BaseCustomizer.GetString("ATT_FormAttestationMakeDecision_ShowReport", text13);586					ITreeListItemSmall treeListItemSmall2 = m_ProxyOpen.CreateButtonItem(caption, "ShowReport");587					treeListItemSmall2.Tag = text13;588					m_ProxyOpen.AddItem(treeListNode5, treeListItemSmall2);589				}590			}591		}592	}593594	private string _TranslateRulerLevel(int irulerLevel)595	{596		return irulerLevel switch597		{598			0 => LanguageManager.Instance.GetString("ATT_FormAttestationMakeDecision_RulerLevel_0"), 599			1 => LanguageManager.Instance.GetString("ATT_FormAttestationMakeDecision_RulerLevel_1"), 600			2 => LanguageManager.Instance.GetString("ATT_FormAttestationMakeDecision_RulerLevel_2"), 601			_ => "", 602		};603	}604605	private void _LoadCompleteDecisions()606	{607		using (new UpdateHelper(m_TreeListCompleteDecisions))608		{609			m_ProxyComplete.Clear();610			ISingleDbObject dbObject = m_MainActivator.DbObject;611			string text = ((dbObject != null) ? dbObject["UID_Person"].New.String : base.Session.User().Uid);612			if (base.Session == null || string.IsNullOrEmpty(text))613			{614				return;615			}616			IStatementRunner runner = base.Session.Resolve<IStatementRunner>();617			List<QueryParameter> obj = new List<QueryParameter>();618			obj.Add(new QueryParameter("UID_Person", ValType.String, text));619			using DisplayCachedDataReader displayCachedDataReader = new DisplayCachedDataReader(runner.SqlExecute("ATT-FormAttMakeDecisionCompleteCases", (System.Collections.Generic.IEnumerable<QueryParameter>)obj), base.Session.MultiLanguage());620			IMetaTable table = base.Session.MetaData().GetTable("AttestationPolicy");621			IMetaTable table2 = base.Session.MetaData().GetTable("AttestationHistory");622			IMetaTable table3 = base.Session.MetaData().GetTable("AttestationObject");623			displayCachedDataReader.SetMetaColumn(3, table.Columns["Ident_AttestationPolicy"]);624			displayCachedDataReader.SetMetaColumn(4, table.Columns["Description"]);625			displayCachedDataReader.SetMetaColumn(7, table2.Columns["DecisionType"]);626			displayCachedDataReader.SetMetaColumn(6, table2.Columns["ReasonHead"]);627			displayCachedDataReader.SetMetaColumn(16, table3.Columns["UiTextGrouped1"]);628			displayCachedDataReader.SetMetaColumn(17, table3.Columns["UiTextGrouped2"]);629			displayCachedDataReader.SetMetaColumn(18, table3.Columns["UiTextGrouped3"]);630			displayCachedDataReader.SetMetaColumn(15, table3.Columns["UiText"]);631			ITreeListNode treeListNode = null;632			ITreeListNode treeListNode2 = null;633			ITreeListNode treeListNode3 = null;634			ITreeListNode treeListNode4 = null;635			ITreeListNode node = null;636			string text2 = null;637			string text3 = null;638			string text4 = null;639			string text5 = null;640			DisplayConverter displayConverter = new DisplayConverter();641			while (displayCachedDataReader.Read())642			{643				string text6 = displayCachedDataReader.GetString(2);644				string text7 = displayCachedDataReader.GetString(9);645				string text8 = displayCachedDataReader.GetString(10);646				string text9 = displayCachedDataReader.GetString(11);647				string propInfo = displayCachedDataReader.GetString(19);648				string propInfo2 = displayCachedDataReader.GetString(20);649				string propInfo3 = displayCachedDataReader.GetString(21);650				string propInfo4 = displayCachedDataReader.GetString(22);651				string text10 = displayCachedDataReader.GetString(16).Replace(Environment.NewLine, " ");652				string text11 = displayCachedDataReader.GetString(17).Replace(Environment.NewLine, " ");653				string text12 = displayCachedDataReader.GetString(18).Replace(Environment.NewLine, " ");654				string input = displayCachedDataReader.GetString(15).Replace(Environment.NewLine, " ");655				if (treeListNode == null || !string.Equals(text6, text2, (StringComparison)5))656				{657					treeListNode = m_ProxyComplete.AddNode(displayCachedDataReader.GetString(3), 16);658					treeListNode.UseSubItems = false;659					treeListNode.SubText = displayCachedDataReader.GetString(4).Replace(Environment.NewLine, " ");660					treeListNode.Tag = text6;661					treeListNode2 = null;662					treeListNode3 = null;663					treeListNode4 = null;664					node = treeListNode;665					text2 = text6;666					for (int i = 1; i < m_ProxyOpen.Columns.Length; i++)667					{668						m_ProxyComplete.AddItem(treeListNode, "");669					}670				}671				if ((treeListNode2 == null || text7 != text3) && text7.Length > 0)672				{673					treeListNode2 = m_ProxyComplete.AddNode(treeListNode, text7, 95);674					treeListNode2.UseSubItems = false;675					if (!string.IsNullOrEmpty(text10))676					{677						treeListNode2.SubText = ReplacePatterns(text10, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);678					}679					treeListNode2.Tag = text7;680					treeListNode3 = null;681					treeListNode4 = null;682					node = treeListNode2;683					text3 = text7;684				}685				if ((treeListNode3 == null || text8 != text4) && text8.Length > 0)686				{687					treeListNode3 = m_ProxyComplete.AddNode(treeListNode2 ?? treeListNode, text8, 95);688					treeListNode3.UseSubItems = false;689					if (!string.IsNullOrEmpty(text11))690					{691						treeListNode3.SubText = ReplacePatterns(text11, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);692					}693					treeListNode3.Tag = text8;694					treeListNode4 = null;695					node = treeListNode3;696					text4 = text8;697				}698				if ((treeListNode4 == null || text9 != text5) && text9.Length > 0)699				{700					treeListNode4 = m_ProxyComplete.AddNode(treeListNode3 ?? treeListNode2 ?? treeListNode, text9, 95);701					treeListNode4.UseSubItems = false;702					if (!string.IsNullOrEmpty(text12))703					{704						treeListNode4.SubText = ReplacePatterns(text12, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4);705					}706					treeListNode4.Tag = text9;707					node = treeListNode4;708					text5 = text9;709				}710				ITreeListNode treeListNode5 = m_ProxyComplete.AddNode(node, displayCachedDataReader.GetString(1), 15);711				treeListNode5.Tag = displayCachedDataReader.GetString(0);712				m_ProxyComplete.AddItem(treeListNode5, displayConverter.DateToDisplayString(displayCachedDataReader.GetDateTime(8)));713				m_ProxyComplete.AddItem(treeListNode5, ReplacePatterns(input, text7, text8, text9, propInfo, propInfo2, propInfo3, propInfo4));714				m_ProxyComplete.AddItem(treeListNode5, displayCachedDataReader.GetString(7));715				m_ProxyComplete.AddItem(treeListNode5, displayCachedDataReader.GetString(6));716				m_ProxyComplete.AddItem(treeListNode5, displayConverter.DateToDisplayString(displayCachedDataReader.GetDateTime(5)));717				m_ProxyComplete.AddItem(treeListNode5, _TranslateRulerLevel(displayCachedDataReader.GetInt32(14)));718				string text13 = displayCachedDataReader.GetString(12);719				if (!string.IsNullOrEmpty(text13) && displayCachedDataReader.GetString(13).Length > 0)720				{721					string caption = BaseCustomizer.GetString("ATT_FormAttestationMakeDecision_ShowReport", text13);722					ITreeListItemSmall treeListItemSmall = m_ProxyComplete.CreateButtonItem(caption, "ShowReport");723					treeListItemSmall.Tag = text13;724					m_ProxyComplete.AddItem(treeListNode5, treeListItemSmall);725				}726			}727		}728	}729730	private void _HandleSubItemActivated(ITreeListNode node, ITreeListItemSmall item)731	{732		//IL_014c: Unknown result type (might be due to invalid IL or missing references)733		//IL_0152: Unknown result type (might be due to invalid IL or missing references)734		try735		{736			if (node == null || item == null || item.ID != "ShowReport")737			{738				return;739			}740			string uidAttestationCase = node.Tag as string;741			if (!string.IsNullOrEmpty(uidAttestationCase))742			{743				Query query = (from t in Query.From("AttestationCase")744					where t.Column("UID_AttestationCase") == uidAttestationCase745					select t).Select("ReportContent").SelectDisplays();746				IEntityCollection collection = base.Session.Source().GetCollection(query);747				if (((System.Collections.Generic.IReadOnlyCollection<IEntity>)collection).Count != 0)748				{749					IEntity entity = ((System.Collections.Generic.IReadOnlyList<IEntity>)collection)[0];750					string text = ((item.Tag != null) ? (item.Tag as string) : "");751					base.ComponentContainer.Resolve<IUserFileService>().WriteFile(new UserFileService.WriteRequest752					{753						FileName = UserFileService.CreateSaveFileName(entity.Display) + "." + text.ToLowerInvariant(),754						Filter = new UserFileService.FileFilter[1]755						{756							new UserFileService.FileFilter757							{758								WildcardPattern = new string[1] { "*." + text }759							}760						},761						MimeType = "application/pdf"762					}, Convert.FromBase64String(entity.GetValue<string>("ReportContent")));763				}764			}765		}766		catch (System.Exception exception)767		{768			ExceptionMgr.Instance.HandleException(exception, this);769		}770	}771772	private void _AdaptDecideButton()773	{774		foreach (ITreeListNode item4 in (System.Collections.IEnumerable)m_ProxyOpen.GetNodeWalker(null, iterateAll: true))775		{776			ITreeListItemSmall item = m_ProxyOpen.GetItem(item4, "approve");777			ITreeListItemSmall item2 = m_ProxyOpen.GetItem(item4, "deny");778			ITreeListItemSmall item3 = m_ProxyOpen.GetItem(item4, "denydecision");779			if (item != null && item2 != null && ((bool)item.Data || (bool)item2.Data || (bool)item3.Data))780			{781				m_ButtonDecide.Enabled = true;782				return;783			}784		}785		m_ButtonDecide.Enabled = false;786	}787788	private void ProxyOpen_SubItemContentChanged(object sender, TreeListProxyEventArgs e)789	{790		try791		{792			if (e.SubItem.ID == "approve" && (bool)e.SubItem.Data)793			{794				m_ProxyOpen.GetItem(e.Node, "deny").Data = false;795				m_ProxyOpen.GetItem(e.Node, "denydecision").Data = false;796			}797			else if (e.SubItem.ID == "deny" && (bool)e.SubItem.Data)798			{799				m_ProxyOpen.GetItem(e.Node, "approve").Data = false;800				m_ProxyOpen.GetItem(e.Node, "denydecision").Data = false;801			}802			else if (e.SubItem.ID == "denydecision" && (bool)e.SubItem.Data)803			{804				m_ProxyOpen.GetItem(e.Node, "approve").Data = false;805				m_ProxyOpen.GetItem(e.Node, "deny").Data = false;806			}807			if (e.Node is TreeListNode treeListNode)808			{809				treeListNode.Invalidate(inclSubItems: true);810			}811			else if (m_TreeListAttCases is IAdapter && AppData.Instance.AppType == AppType.Gui)812			{813				m_TreeListAttCases.Invalidate();814			}815		}816		catch (System.Exception exception)817		{818			ExceptionMgr.Instance.HandleException(exception, this);819		}820		finally821		{822			_AdaptDecideButton();823		}824	}825826	private void ProxyOpen_SubItemActivated(object sender, TreeListProxyEventArgs e)827	{828		_HandleSubItemActivated(e.Node, e.SubItem);829	}830831	private void ProxyComplete_SubItemActivated(object sender, TreeListProxyEventArgs e)832	{833		_HandleSubItemActivated(e.Node, e.SubItem);834	}835836	private void ButtonDecide_Click(object sender, EventArgs e)837	{838		try839		{840			if (base.Session == null)841			{842				return;843			}844			IEntitySource source = base.Session.Source();845			using (new BusyIndicator(base.Session, VI.FormBase.BusyTime.Short))846			{847				using IUnitOfWork unitOfWork = base.Session.StartUnitOfWork();848				string text = m_TreeComboUIDQERJustification.SelectedParent?.GetValue<string>("UID_QERJustification");849				foreach (ITreeListNode item4 in (System.Collections.IEnumerable)m_ProxyOpen.GetNodeWalker(null, iterateAll: true))850				{851					try852					{853						ITreeListItemSmall item = m_ProxyOpen.GetItem(item4, "approve");854						ITreeListItemSmall item2 = m_ProxyOpen.GetItem(item4, "deny");855						ITreeListItemSmall item3 = m_ProxyOpen.GetItem(item4, "denydecision");856						if (item == null || item2 == null || item3 == null)857						{858							continue;859						}860						bool flag = (bool)item.Data;861						bool flag2 = (bool)item2.Data;862						bool flag3 = (bool)item3.Data;863						if (flag || flag2 || flag3)864						{865							string text2 = item4.Tag as string;866							if (string.IsNullOrEmpty(text2))867							{868								return;869							}870							IEntity entity = source.Get("AttestationCase", text2);871							if (flag3)872							{873								entity.CallMethod("DenyDecision", base.Session.User().Uid, m_EditDecisionReason.Text.Trim(), text);874							}875							else876							{877								entity.CallMethod("MakeDecision", base.Session.User().Uid, flag, m_EditDecisionReason.Text.Trim(), text);878							}879							unitOfWork.Put(entity);880						}881					}882					catch883					{884						m_ProxyOpen.SelectedNode = item4;885						throw;886					}887				}888				unitOfWork.Commit();889			}890			TreeSnapShot treeSnapShot = TreeSnapShot.Create(m_TreeListAttCases, "Tag", ignoreCase: true);891			_LoadAttestationCases();892			treeSnapShot.Restore(m_TreeListAttCases, restoreSelection: true);893		}894		catch (System.Exception exception)895		{896			ExceptionMgr.Instance.HandleException(exception, this);897		}898	}899900	private void ProxyComplete_SelectedNodeChanged(object sender, TreeListProxyEventArgs e)901	{902		base.Tasks["ShowHistory"].Enabled = m_ProxyComplete.SelectedNode != null && !m_ProxyComplete.SelectedNode.HasChildren;903	}904905	private void ProxyOpen_SelectedNodeChanged(object sender, TreeListProxyEventArgs e)906	{907		try908		{909			base.Tasks["ShowHistory"].Enabled = m_ProxyOpen.SelectedNode != null && !m_ProxyOpen.SelectedNode.HasChildren;910			_HandleFeatures();911			m_EditDescription.Text = "";912			if (e.Node != null)913			{914				m_EditDescription.Text = Enumerable.FirstOrDefault<ITreeListItemSmall>((System.Collections.Generic.IEnumerable<ITreeListItemSmall>)m_ProxyOpen.GetItems(e.Node), (Func<ITreeListItemSmall, bool>)((ITreeListItemSmall i) => i.Column.ID == "ATT_FormAttestationMakeDecision_AttestationCaseText"))?.Caption ?? "";915			}916		}917		catch (System.Exception exception)918		{919			ExceptionMgr.Instance.HandleException(exception, this);920		}921	}922923	private void ButtonQueryPerson_Click(object sender, EventArgs e)924	{925		try926		{927			if (m_TreeComboPersonToQuery.SelectedParent != null)928			{929				_ExecuteFeature("QueryToPerson", m_TreeComboPersonToQuery.SelectedParent["UID_Person"].New.String, m_EditQuestion.Text);930			}931		}932		catch (System.Exception exception)933		{934			ExceptionMgr.Instance.HandleException(exception, this);935		}936		finally937		{938			m_TreeComboPersonToQuery.ParentControl.Visible = false;939		}940	}941942	private void ButtonAddAdditional_Click(object sender, EventArgs e)943	{944		try945		{946			if (m_FeatureAllowed_AddAdditional && m_TreeComboPersonToAddAdditional.SelectedParent != null)947			{948				_ExecuteFeature("AddAdditional", m_TreeComboPersonToAddAdditional.SelectedParent["UID_Person"].New.String, m_EditAddAdditionalReason.Text);949			}950		}951		catch (System.Exception exception)952		{953			ExceptionMgr.Instance.HandleException(exception, this);954		}955		finally956		{957			m_TreeComboPersonToAddAdditional.ParentControl.Visible = false;958		}959	}960961	private void ButtonAddInsteadOf_Click(object sender, EventArgs e)962	{963		try964		{965			if (m_FeatureAllowed_AddInsteadOf && m_TreeComboPersonToAddInsteadOf.SelectedParent != null)966			{967				_ExecuteFeature("AddInsteadOf", m_TreeComboPersonToAddInsteadOf.SelectedParent["UID_Person"].New.String, m_EditAddInsteadOfReason.Text);968			}969		}970		catch (System.Exception exception)971		{972			ExceptionMgr.Instance.HandleException(exception, this);973		}974		finally975		{976			m_TreeComboPersonToAddInsteadOf.ParentControl.Visible = false;977		}978	}979980	private void ButtonShowQuery_Click(object sender, EventArgs e)981	{982		try983		{984			_ToggleMode(m_TreeComboPersonToQuery);985		}986		catch (System.Exception exception)987		{988			ExceptionMgr.Instance.HandleException(exception, this);989		}990	}991992	private void ButtonShowAddAdditional_Click(object sender, EventArgs e)993	{994		try995		{996			_ToggleMode(m_TreeComboPersonToAddAdditional);997		}998		catch (System.Exception exception)999		{1000			ExceptionMgr.Instance.HandleException(exception, this);1001		}1002	}10031004	private void ButtonShowAddInsteadOf_Click(object sender, EventArgs e)1005	{1006		try1007		{1008			_ToggleMode(m_TreeComboPersonToAddInsteadOf);1009		}1010		catch (System.Exception exception)1011		{1012			ExceptionMgr.Instance.HandleException(exception, this);1013		}1014	}10151016	private void TreeComboPersonToQuery_SelectedParentChanged(object sender, EventArgs e)1017	{1018		try1019		{1020			m_ButtonQueryPerson.Enabled = m_TreeComboPersonToQuery.SelectedParent != null;1021		}1022		catch (System.Exception exception)1023		{1024			ExceptionMgr.Instance.HandleException(exception, this);1025		}1026	}10271028	private void TreeComboPersonToAddAdditional_SelectedParentChanged(object sender, EventArgs e)1029	{1030		try1031		{1032			m_ButtonAddAdditional.Enabled = m_TreeComboPersonToAddAdditional.SelectedParent != null;1033		}1034		catch (System.Exception exception)1035		{1036			ExceptionMgr.Instance.HandleException(exception, this);1037		}1038	}10391040	private void TreeComboPersonToAddInsteadOf_SelectedParentChanged(object sender, EventArgs e)1041	{1042		try1043		{1044			m_ButtonAddInsteadOf.Enabled = m_TreeComboPersonToAddInsteadOf.SelectedParent != null;1045		}1046		catch (System.Exception exception)1047		{1048			ExceptionMgr.Instance.HandleException(exception, this);1049		}1050	}1051}1052