void GetProperty(string path, INodeFactory factory, Collection <string> providerSpecificPickList) { var node = factory.GetNodeValue(); PSObject values = null; if (null == providerSpecificPickList || 0 == providerSpecificPickList.Count) { values = PSObject.AsPSObject(node.Item); } else { values = new PSObject(); var value = node.Item; var propDescs = TypeDescriptor.GetProperties(value); var props = (from PropertyDescriptor prop in propDescs where (providerSpecificPickList.Contains(prop.Name, StringComparer.InvariantCultureIgnoreCase)) select prop); props.ToList().ForEach(p => { var iv = p.GetValue(value); if (null != iv) { values.Properties.Add(new PSNoteProperty(p.Name, p.GetValue(value))); } }); } WritePropertyObject(values, path); }
private void WriteChildItem(string path, bool recurse, INodeFactory child) { try { var i = child.GetNodeValue(); if (null == i) { return; } var childPath = MakePath(path, i.Name); WritePathNode(childPath, child); if (recurse) { var context = CreateContext(path, recurse); var kids = child.GetNodeChildren(context); WriteChildItem(childPath, recurse, kids); } } catch (PipelineStoppedException) { throw; } catch (Exception e) { WriteDebug("An exception was raised while writing child items: " + e.ToString()); } }
private void WritePathNode(string nodeContainerPath, INodeFactory factory) { var value = factory.GetNodeValue(); if (null == value) { return; } PSObject pso = PSObject.AsPSObject(value.Item); pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode)); WriteItemObject(pso, nodeContainerPath, value.IsCollection); }
private void WritePathNode(string nodeContainerPath, INodeFactory factory) { var value = factory.GetNodeValue(); if (null == value) { return; } nodeContainerPath = SessionState.Path.GetUnresolvedProviderPathFromPSPath(nodeContainerPath); PSObject pso = PSObject.AsPSObject(value.Item); pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode)); WriteItemObject(pso, nodeContainerPath, value.IsCollection); }
void SetProperty(string path, INodeFactory factory, PSObject propertyValue) { var node = factory.GetNodeValue(); var value = node.Item; var propDescs = TypeDescriptor.GetProperties(value); var psoDesc = propertyValue.Properties; var props = (from PropertyDescriptor prop in propDescs let psod = (from pso in psoDesc where StringComparer.InvariantCultureIgnoreCase.Equals(pso.Name, prop.Name) select pso).FirstOrDefault() where null != psod select new { PSProperty = psod, Property = prop }); props.ToList().ForEach(p => p.Property.SetValue(value, p.PSProperty.Value)); }
public IPathNode GetNodeValue() { return(_factory.GetNodeValue()); }
void GetProperty(string path, INodeFactory factory, Collection<string> providerSpecificPickList) { var node = factory.GetNodeValue(); PSObject values = null; if (null == providerSpecificPickList || 0 == providerSpecificPickList.Count) { values = PSObject.AsPSObject(node.Item); } else { values = new PSObject(); var value = node.Item; var propDescs = TypeDescriptor.GetProperties(value); var props = (from PropertyDescriptor prop in propDescs where (providerSpecificPickList.Contains(prop.Name, StringComparer.InvariantCultureIgnoreCase)) select prop); props.ToList().ForEach(p => { var iv = p.GetValue(value); if (null != iv) { values.Properties.Add(new PSNoteProperty(p.Name, p.GetValue(value))); } }); } WritePropertyObject(values, path); }
private void WritePathNode(string nodeContainerPath, INodeFactory factory) { var value = factory.GetNodeValue(); if (null == value) { return; } PSObject pso = PSObject.AsPSObject(value.Item); pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode)); WriteItemObject(pso, nodeContainerPath, value.IsCollection); }
void SetProperty(string path, INodeFactory factory, PSObject propertyValue) { var node = factory.GetNodeValue(); var value = node.Item; var propDescs = TypeDescriptor.GetProperties(value); var psoDesc = propertyValue.Properties; var props = (from PropertyDescriptor prop in propDescs let psod = (from pso in psoDesc where StringComparer.InvariantCultureIgnoreCase.Equals(pso.Name, prop.Name) select pso).FirstOrDefault() where null != psod select new {PSProperty = psod, Property = prop}); props.ToList().ForEach(p => p.Property.SetValue(value, p.PSProperty.Value)); }
private void WritePathNode(string nodeContainerPath, INodeFactory factory) { var value = factory.GetNodeValue(); if (null == value) { return; } nodeContainerPath = SessionState.Path.GetUnresolvedProviderPathFromPSPath(nodeContainerPath); PSObject pso = PSObject.AsPSObject(value.Item); pso.Properties.Add(new PSNoteProperty(ItemModePropertyName, factory.ItemMode)); WriteItemObject(pso, nodeContainerPath, value.IsCollection); }
private void WriteChildItem(string path, bool recurse, INodeFactory child) { try { var i = child.GetNodeValue(); if (null == i) { return; } var childPath = MakePath(path, i.Name); WritePathNode(childPath, child); if (recurse) { var context = CreateContext(path, recurse); var kids = child.GetNodeChildren(context); WriteChildItem(childPath, recurse, kids); } } catch (PipelineStoppedException) { throw; } catch (Exception e) { WriteDebug("An exception was raised while writing child items: " + e.ToString()); } }