Ejemplo n.º 1
0
        internal Dictionary <string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData> FindSupportedReferenceCommands(PSEntityMetadata entityMetadata, HashSet <string> initialSessionCommands)
        {
            string str;
            Dictionary <string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData> strs = new Dictionary <string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData>();

            foreach (KeyValuePair <string, PSEntityMetadata.ReferenceSetCmdlets> cmdletsForReferenceSet in entityMetadata.CmdletsForReferenceSets)
            {
                Func <string, bool> func  = null;
                Func <string, bool> func1 = null;
                Func <string, bool> func2 = null;
                PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData referencePropertyDatum = new PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData();
                PSReferenceSetCmdletInfo pSReferenceSetCmdletInfo = null;
                if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.AddReference, out pSReferenceSetCmdletInfo))
                {
                    HashSet <string> strs1 = initialSessionCommands;
                    if (func == null)
                    {
                        func = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
                    }
                    str = strs1.FirstOrDefault <string>(func);
                    referencePropertyDatum.IncludeAdd = str != null;
                }
                if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.RemoveReference, out pSReferenceSetCmdletInfo))
                {
                    HashSet <string> strs2 = initialSessionCommands;
                    if (func1 == null)
                    {
                        func1 = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
                    }
                    str = strs2.FirstOrDefault <string>(func1);
                    referencePropertyDatum.IncludeRemove = str != null;
                }
                if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.GetReference, out pSReferenceSetCmdletInfo))
                {
                    HashSet <string> strs3 = initialSessionCommands;
                    if (func2 == null)
                    {
                        func2 = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
                    }
                    str = strs3.FirstOrDefault <string>(func2);
                    referencePropertyDatum.IncludeGet = true;
                    referencePropertyDatum.GetHidden  = str == null;
                }
                strs.Add(cmdletsForReferenceSet.Key, referencePropertyDatum);
            }
            return(strs);
        }
Ejemplo n.º 2
0
		internal Dictionary<string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData> FindSupportedReferenceCommands(PSEntityMetadata entityMetadata, HashSet<string> initialSessionCommands)
		{
			string str;
			Dictionary<string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData> strs = new Dictionary<string, PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData>();
			foreach (KeyValuePair<string, PSEntityMetadata.ReferenceSetCmdlets> cmdletsForReferenceSet in entityMetadata.CmdletsForReferenceSets)
			{
				Func<string, bool> func = null;
				Func<string, bool> func1 = null;
				Func<string, bool> func2 = null;
				PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData referencePropertyDatum = new PSSchemaBuilder.EntityDataForSchemaBuilding.ReferencePropertyData();
				PSReferenceSetCmdletInfo pSReferenceSetCmdletInfo = null;
				if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.AddReference, out pSReferenceSetCmdletInfo))
				{
					HashSet<string> strs1 = initialSessionCommands;
					if (func == null)
					{
						func = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
					}
					str = strs1.FirstOrDefault<string>(func);
					referencePropertyDatum.IncludeAdd = str != null;
				}
				if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.RemoveReference, out pSReferenceSetCmdletInfo))
				{
					HashSet<string> strs2 = initialSessionCommands;
					if (func1 == null)
					{
						func1 = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
					}
					str = strs2.FirstOrDefault<string>(func1);
					referencePropertyDatum.IncludeRemove = str != null;
				}
				if (cmdletsForReferenceSet.Value.Cmdlets.TryGetValue(CommandType.GetReference, out pSReferenceSetCmdletInfo))
				{
					HashSet<string> strs3 = initialSessionCommands;
					if (func2 == null)
					{
						func2 = (string item) => string.Equals(item, pSReferenceSetCmdletInfo.CmdletName, StringComparison.OrdinalIgnoreCase);
					}
					str = strs3.FirstOrDefault<string>(func2);
					referencePropertyDatum.IncludeGet = true;
					referencePropertyDatum.GetHidden = str == null;
				}
				strs.Add(cmdletsForReferenceSet.Key, referencePropertyDatum);
			}
			return strs;
		}