/// <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); }
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); }
/// <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); }