public IPathValue NewItem(IProviderContext context, string path, string itemTypeName, object newItemValue) { IScaleDescriptor descriptor = null; if (null == newItemValue) { throw new ArgumentNullException("newItemValue"); } newItemValue = PSObject.AsPSObject(newItemValue).BaseObject; if (newItemValue is string) { descriptor = new ScaleDescriptor(newItemValue as string); } else if (newItemValue is object[]) { descriptor = new ScaleDescriptor(newItemValue as object[]); } else { throw new ArgumentException("the new range value must be specified as a valid range descriptor", "newItemValue"); } _dataSource.Scales.Add(new ScaleDescriptorAssignment { PropertyName = path, Scale = descriptor }); return(Resolve(context, path).First().GetNodeValue()); }
public static Color?GetColorOfScaleValue(this IScaleDescriptor _this, double value) { var colors = (from r in _this.Ranges where r.Maximum >= value && r.Minimum <= value select r.Color); return(colors.FirstOrDefault()); }
public static Color GetColorOfScaleValueOrScaleDefault(this IScaleDescriptor _this, double value) { var color = (from r in _this.Ranges where r.Maximum >= value && r.Minimum <= value select r.Color).FirstOrDefault(); if (!color.HasValue) { return(_this.Color); } return(color.Value); }
private IDictionary <Regex, IScaleDescriptor> AdaptHashtableToDescriptorTable(Hashtable specs) { if (null == specs) { return(new Dictionary <Regex, IScaleDescriptor>()); } var table = new Dictionary <Regex, IScaleDescriptor>(); foreach (object key in specs.Keys) { var value = specs[key]; Regex re = key as Regex; IScaleDescriptor descriptor = value as IScaleDescriptor; if (null == re) { re = new Regex("^" + Regex.Escape(key.ToString()) + "$", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline); } if (null == descriptor) { Array array = value as Array; if (null != array) { if (1 != array.Length) { descriptor = new ScaleDescriptor((object[])value); } else { value = array.GetValue(0); } } if (null == descriptor) { descriptor = new ScaleDescriptor(value.ToString()); } } table.Add(re, descriptor); } return(table); }
private void SafeAddScaleDescriptorAssignment(DynamicMemberDescriptor m) { using (_log.PushContext("SafeAddScaleDescriptorAssignment")) { IScaleDescriptor sd = m.ScaleDescriptor; if (null == sd) { _log.DebugFormat("getting/creating scale descriptor for {0}", m.MemberInfo.Name); GetOrCreateScaleAssignment(m.MemberInfo.Name, m.MemberInfo); } else { _log.DebugFormat("adding scale descriptor assignment for {0} to {1}", m.MemberInfo.Name, m.ScaleDescriptor.Name); Scales.Add(new ScaleDescriptorAssignment { PropertyName = m.MemberInfo.Name, Scale = m.ScaleDescriptor }); } } }
public DynamicMemberDescriptor(PSPropertyInfo memberinfo, IScaleDescriptor scaleDescriptor, object indexValue) { _memberinfo = memberinfo; _scaleDescriptor = scaleDescriptor; _indexValue = indexValue; }
public DynamicMemberDescriptor( PSPropertyInfo memberinfo, IScaleDescriptor scaleDescriptor) : this(memberinfo, scaleDescriptor, null) { }
ScaleDescriptor(IScaleDescriptor descriptors, Color color) { Name = descriptors.Name; Color = color; Ranges = descriptors.Ranges; }
public IPathValue NewItem(IProviderContext context, string path, string itemTypeName, object newItemValue) { var parameters = context.DynamicParameters as DataSourceNewItemParameters; var name = path; var script = ConvertToScript(newItemValue); if (null == script) { throw new ArgumentException("new item value must be a script block or string", "newItemValue"); } var dataSource = new PowerShellDataSource { Name = name, ScriptBlock = script, UseDispatcher = true }; if (null != parameters) { if (parameters.MaxItemCount.HasValue) { dataSource.DataCollectionMaxSize = parameters.MaxItemCount.Value; } if (parameters.NoDispatcher.IsPresent) { dataSource.UseDispatcher = false; } if (null != parameters.Args) { string propertyName = null; var specs = parameters.Args.ToHashtable(); foreach (object key in specs.Keys) { var value = specs[key]; IScaleDescriptor descriptor = value as IScaleDescriptor; if (null == descriptor) { if (value is Array) { descriptor = new ScaleDescriptor((object[])value); } else { descriptor = new ScaleDescriptor(value.ToString()); } } dataSource.Scales.Add( new ScaleDescriptorAssignment { Scale = descriptor, PropertyName = key.ToString() } ); } } } ITrigger trigger = Singleton <ImmediateTrigger> .Instance; if (null != parameters && null != parameters.Trigger) { trigger = parameters.Trigger; } dataSource.Trigger = trigger; _drive.Add(dataSource); return(new PathValue(dataSource, name, true)); }
public DynamicMemberDescriptor(PSPropertyInfo memberinfo, IScaleDescriptor scaleDescriptor) : this(memberinfo, scaleDescriptor, null) { }
public RangeNodeFactory( IScaleDescriptor owner, IRangeDescriptor range ) { _owner = owner; _range = range; }
public RangeNodeFactory(IScaleDescriptor owner, IRangeDescriptor range) { _owner = owner; _range = range; }