public static IWoopsaElement ByPathOrNull(this IWoopsaContainer element, string path) { string workPath = WoopsaUtils.RemoveInitialSeparator(path); if (workPath == string.Empty) { return(element); } else { string[] pathElements = workPath.Split(WoopsaConst.WoopsaPathSeparator); IWoopsaElement result = element; foreach (var item in pathElements) { if (result is IWoopsaContainer) { result = ((IWoopsaContainer)result).ByNameOrNull(item); } else { result = null; break; } } return(result); } }
public static void DecodeWoopsaLink(this IWoopsaValue value, out string woopsaServerUrl, out string woopsaItemPath) { if (value.Type == WoopsaValueType.WoopsaLink) { string[] parts = value.AsText.Split(WoopsaConst.WoopsaLinkSeparator); if (parts.Length == 1) { woopsaServerUrl = null; woopsaItemPath = WoopsaUtils.RemoveInitialSeparator(parts[0]); } else if (parts.Length == 2) { woopsaServerUrl = parts[0]; woopsaItemPath = WoopsaUtils.RemoveInitialSeparator(parts[1]); } else { throw new WoopsaException(string.Format("Badly formed WoopsaLink {0} ", value.AsText)); } } else { throw new WoopsaException(string.Format("Cannot decode WoopsaValue of type {0} as a WoopsaLink", value.Type)); } }
public static string FormatRelativeWoopsaLink(string woopsaItemPath) { return(WoopsaUtils.RemoveInitialSeparator(woopsaItemPath)); }