Exemple #1
0
        private static bool SearchAllFilterTypes(PSWorkflowJob job, WorkflowFilterTypes type, string key, out object value)
        {
            PSWorkflowContext metadata = job.PSWorkflowInstance.PSWorkflowContext;
            value = null;
            if (metadata == null)
                return false;
            var searchTable = new Dictionary<WorkflowFilterTypes, Dictionary<string, object>>
                                  {
                                      {WorkflowFilterTypes.WorkflowSpecificParameters, metadata.WorkflowParameters},
                                      {WorkflowFilterTypes.JobMetadata, metadata.JobMetadata},
                                      {WorkflowFilterTypes.CommonParameters, metadata.PSWorkflowCommonParameters},
                                      {WorkflowFilterTypes.PrivateMetadata, metadata.PrivateMetadata}
                                  };
            foreach(var filter in searchTable.Keys)
            {
                object searchResult;
                if (!type.HasFlag(filter) || !SearchOneFilterType(searchTable[filter], key, out searchResult)) continue;
                value = searchResult;
                return true;
            }

            return false;

        }
		private static bool SearchAllFilterTypes(PSWorkflowJob job, WorkflowFilterTypes type, string key, out object value)
		{
			object obj = null;
			bool flag;
			PSWorkflowContext pSWorkflowContext = job.PSWorkflowInstance.PSWorkflowContext;
			value = null;
			if (pSWorkflowContext != null)
			{
				Dictionary<WorkflowFilterTypes, Dictionary<string, object>> workflowFilterTypes = new Dictionary<WorkflowFilterTypes, Dictionary<string, object>>();
				workflowFilterTypes.Add(WorkflowFilterTypes.WorkflowSpecificParameters, pSWorkflowContext.WorkflowParameters);
				workflowFilterTypes.Add(WorkflowFilterTypes.JobMetadata, pSWorkflowContext.JobMetadata);
				workflowFilterTypes.Add(WorkflowFilterTypes.CommonParameters, pSWorkflowContext.PSWorkflowCommonParameters);
				workflowFilterTypes.Add(WorkflowFilterTypes.PrivateMetadata, pSWorkflowContext.PrivateMetadata);
				Dictionary<WorkflowFilterTypes, Dictionary<string, object>> workflowFilterTypes1 = workflowFilterTypes;
				Dictionary<WorkflowFilterTypes, Dictionary<string, object>>.KeyCollection.Enumerator enumerator = workflowFilterTypes1.Keys.GetEnumerator();
				try
				{
					while (enumerator.MoveNext())
					{
						WorkflowFilterTypes current = enumerator.Current;
						if (!type.HasFlag(current) || !PSWorkflowJobManager.SearchOneFilterType(workflowFilterTypes1[current], key, out obj))
						{
							continue;
						}
						value = obj;
						flag = true;
						return flag;
					}
					return false;
				}
				finally
				{
					enumerator.Dispose();
				}
				return flag;
			}
			else
			{
				return false;
			}
		}