/// <summary> /// Gets the ACL mask of the <paramref name="assetType"/>. /// </summary> /// <param name="assetType">The <see cref="AssetType"/> for which to generate the ACL mask.</param> /// <returns>Returns the mask code.</returns> protected static int GetACLMask(AssetType assetType) { // validate arguments if (assetType == null) throw new ArgumentNullException("assetType"); return (int) (AccessControlRules.FolderView | AccessControlRules.FileView | AccessControlRules.FolderCreate | AccessControlRules.FileUpload); }
/// <summary> /// Creates an <see cref="AssetFolder"/> instance from the <paramref name="node"/>. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="assetType">The <see cref="AssetType"/>.</param> /// <param name="node">The <see cref="Node"/>.</param> /// <returns>Returns the constructed <see cref="AssetFolder"/> instance.</returns> public static AssetFolder Create(IMansionContext context, AssetType assetType, Node node) { // validate arguments if (context == null) throw new ArgumentNullException("context"); if (assetType == null) throw new ArgumentNullException("assetType"); if (node == null) throw new ArgumentNullException("node"); // create the folder return new AssetFolder { AssetType = assetType, Path = "/" + node.Pointer.Name.ToLower() + "/", Label = node.Pointer.Name, Node = node, Url = AssetUtil.GetUrl(context, assetType.Node, node) }; }
/// <summary> /// Parses the <paramref name="path"/> into a <see cref="AssetFolder"/>. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="assetType">The <see cref="AssetType"/>.</param> /// <param name="path">The path which to parse.</param> /// <returns>Returns the <see cref="AssetFolder"/>.</returns> public AssetFolder ParseFolder(IMansionContext context, AssetType assetType, string path) { // validate arguments if (context == null) throw new ArgumentNullException("context"); if (assetType == null) throw new ArgumentNullException("assetType"); if (string.IsNullOrEmpty(path)) throw new ArgumentNullException("path"); // if the asset type is unknown, return unknown folder if (assetType.Equals(AssetType.Unknown)) return AssetFolder.Unknown; // get the path parts var parts = path.Split(Dispatcher.Constants.UrlPartTrimCharacters, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 0) return AssetFolder.Create(context, assetType, assetType.Node); // retrieve the folder node var folderNode = RetrieveFolderByNameNode(context, assetType.Node, parts); // create the folder return AssetFolder.Create(context, assetType, folderNode); }