private uint NewParameterSetPromptingData(
            Dictionary<uint, ParameterSetPromptingData> promptingData,
            MergedCompiledCommandParameter parameter,
            ParameterSetSpecificMetadata parameterSetMetadata,
            uint defaultParameterSet,
            bool pipelineInputExpected)
        {
            uint parameterMandatorySets = 0;
            uint parameterSetFlag = parameterSetMetadata.ParameterSetFlag;
            if (parameterSetFlag == 0)
            {
                parameterSetFlag = uint.MaxValue;
            }
            bool isDefaultSet = (defaultParameterSet != 0) && ((defaultParameterSet & parameterSetFlag) != 0);

            bool isMandatory = false;
            if (parameterSetMetadata.IsMandatory)
            {
                parameterMandatorySets |= parameterSetFlag;
                isMandatory = true;
            }

            bool isPipelineable = false;
            if (pipelineInputExpected)
            {
                if (parameterSetMetadata.ValueFromPipeline || parameterSetMetadata.ValueFromPipelineByPropertyName)
                {
                    isPipelineable = true;
                }
            }

            if (isMandatory)
            {
                ParameterSetPromptingData promptingDataForSet;
                if (!promptingData.TryGetValue(parameterSetFlag, out promptingDataForSet))
                {
                    promptingDataForSet = new ParameterSetPromptingData(parameterSetFlag, isDefaultSet);
                    promptingData.Add(parameterSetFlag, promptingDataForSet);
                }

                if (isPipelineable)
                {
                    promptingDataForSet.PipelineableMandatoryParameters[parameter] = parameterSetMetadata;

                    if (parameterSetMetadata.ValueFromPipeline)
                    {
                        promptingDataForSet.PipelineableMandatoryByValueParameters[parameter] = parameterSetMetadata;
                    }

                    if (parameterSetMetadata.ValueFromPipelineByPropertyName)
                    {
                        promptingDataForSet.PipelineableMandatoryByPropertyNameParameters[parameter] = parameterSetMetadata;
                    }
                }
                else
                {
                    promptingDataForSet.NonpipelineableMandatoryParameters[parameter] = parameterSetMetadata;
                }
            }

            return parameterMandatorySets;
        }
 private int NewParameterSetPromptingData(Dictionary<int, ParameterSetPromptingData> promptingData, MergedCompiledCommandParameter parameter, ParameterSetSpecificMetadata parameterSetMetadata, int defaultParameterSet, bool pipelineInputExpected)
 {
     int num = 0;
     int parameterSetFlag = parameterSetMetadata.ParameterSetFlag;
     if (parameterSetFlag == 0)
     {
         parameterSetFlag = int.MaxValue;
     }
     bool isDefaultSet = (defaultParameterSet != 0) && ((defaultParameterSet & parameterSetFlag) != 0);
     bool flag2 = false;
     if (parameterSetMetadata.IsMandatory)
     {
         num |= parameterSetFlag;
         flag2 = true;
     }
     bool flag3 = false;
     if (pipelineInputExpected && (parameterSetMetadata.ValueFromPipeline || parameterSetMetadata.ValueFromPipelineByPropertyName))
     {
         flag3 = true;
     }
     if (flag2)
     {
         ParameterSetPromptingData data;
         if (!promptingData.TryGetValue(parameterSetFlag, out data))
         {
             data = new ParameterSetPromptingData(parameterSetFlag, isDefaultSet);
             promptingData.Add(parameterSetFlag, data);
         }
         if (flag3)
         {
             data.PipelineableMandatoryParameters[parameter] = parameterSetMetadata;
             if (parameterSetMetadata.ValueFromPipeline)
             {
                 data.PipelineableMandatoryByValueParameters[parameter] = parameterSetMetadata;
             }
             if (parameterSetMetadata.ValueFromPipelineByPropertyName)
             {
                 data.PipelineableMandatoryByPropertyNameParameters[parameter] = parameterSetMetadata;
             }
             return num;
         }
         data.NonpipelineableMandatoryParameters[parameter] = parameterSetMetadata;
     }
     return num;
 }