Exemple #1
0
        /// <summary>
        /// Performs enhanced record-by-record processing functionality for the cmdlet.
        /// </summary>
        protected override void ProcessRecordEx()
        {
            NewSensorParameters parameters;

            if (ParameterSetName == ParameterSet.Dynamic)
            {
                WriteProcessProgressRecords(f => CreateDynamicParameters(i => f(i, $"Probing target device ({i}%)")));

                return;
            }
            if (ParameterSetName == ParameterSet.Empty)
            {
                parameters = new PSRawSensorParameters("fake_name", "fake_sensortype")
                {
                    Parameters = new List <CustomParameter>()
                };

                parameters.GetParameters().Remove(Parameter.SensorType);
            }
            else
            {
                parameters = ParameterSetName == ParameterSet.Raw ? CreateRawParameters() : CreateTypedParameters();

                if (First != null && !ignoreName)
                {
                    parameters.Name = First.ToString();
                }
            }

            WriteObject(parameters);
        }
Exemple #2
0
        private NewSensorParameters CreateRawParameters()
        {
            if (!RawParameters.ContainsKey(NameParameter))
            {
                throw new InvalidOperationException($"Hashtable record '{NameParameter}' is mandatory, however a value was not specified");
            }

            if (!RawParameters.ContainsKey(SensorTypeParameter))
            {
                throw new InvalidOperationException($"Hashtable record '{SensorTypeParameter}' is mandatory, however a value was not specified'");
            }

            var parameters = new PSRawSensorParameters(RawParameters[NameParameter]?.ToString(), RawParameters[SensorTypeParameter]?.ToString());

            var toAdd = RawParameters.Keys.Cast <object>()
                        .Where(k => k.ToString() != SensorTypeParameter)
                        .Select(k => new CustomParameter(k.ToString(), PSObjectUtilities.CleanPSObject(RawParameters[k]), ParameterType.MultiParameter))
                        .ToList();

            foreach (var param in toAdd)
            {
                parameters[param.Name] = param.Value;
            }

            if (DynamicType)
            {
                parameters.DynamicType = true;
            }

            return(parameters);
        }
Exemple #3
0
        /// <summary>
        /// Performs enhanced record-by-record processing functionality for the cmdlet.
        /// </summary>
        protected override void ProcessRecordEx()
        {
            NewSensorParameters parameters;

            if (ParameterSetName == ParameterSet.Dynamic)
            {
                WriteProcessProgressRecords(f => CreateDynamicParameters(i => f(i, $"Probing target device ({i}%)")));

                return;
            }
            if (ParameterSetName == ParameterSet.Empty)
            {
                parameters = new PSRawSensorParameters("fake_name", "fake_sensortype")
                {
                    Parameters = new List <CustomParameter>()
                };

                parameters.GetParameters().Remove(Parameter.SensorType);
            }
            else
            {
                parameters = ParameterSetName == ParameterSet.Raw ? CreateRawParameters() : CreateTypedParameters();

                var attrib = Type.GetEnumAttribute <NewSensorAttribute>() ?? new NewSensorAttribute();

                if (!string.IsNullOrWhiteSpace(First?.ToString()) && !attrib.DynamicName)
                {
                    parameters.Name = First.ToString();
                }
            }

            WriteObject(parameters);
        }