void SetItem( string path, INodeFactory factory, object value )
{
var @set = factory as ISetItem;
if (null == factory || null == @set)
{
WriteCmdletNotSupportedAtNodeError(path, ProviderCmdlet.SetItem, SetItemNotSupportedErrorID);
return;
}
var fullPath = path;
path = GetChildName(path);
if (!ShouldProcess(fullPath, ProviderCmdlet.SetItem))
{
return;
}
try
{
var result = @set.SetItem(CreateContext(fullPath), path, value);
if (null != result)
{
WritePathNode(fullPath, result);
}
}
catch (Exception e)
{
WriteGeneralCmdletError(e, SetItemInvokeErrorID, fullPath);
}
}