/// <summary> /// Returns URL of the media item according site settings. /// </summary> /// <param name="argument">Argument containing information on current media item</param> /// <param name="height">Item height in px</param> /// <param name="width">Item width in px</param> /// <param name="maxSideSize">Maximum dimension for images displayed for thumbnails view</param> /// <param name="notAttachment">True if this is not an attachement</param> public string GetItemUrl(string argument, int height, int width, int maxSideSize, bool notAttachment) { Hashtable argTable = GetArgumentsTable(argument); if (argTable.Count >= 2) { string url; // Get image URL switch (SourceType) { case MediaSourceEnum.Content: { // Get information from argument Guid nodeGuid = ValidationHelper.GetGuid(argTable["nodeguid"], Guid.Empty); string documentUrlPath = argTable["documenturlpath"].ToString(); string nodeAlias = argTable["nodealias"].ToString(); string nodeAliasPath = argTable["nodealiaspath"].ToString(); string documentExtensions = argTable["documentextensions"].ToString(); string documentClass = argTable["classname"].ToString(); bool nodeIsLink = (ValidationHelper.GetInteger(argTable["nodelinkednodeid"], 0) != 0); string siteName = argTable["sitename"].ToString(); // Get default url extension for current item string fileExt = !String.IsNullOrEmpty(documentClass) && (documentClass.ToLowerCSafe() == "cms.file") ? TreePathUtils.GetFilesUrlExtension(siteName) : TreePathUtils.GetUrlExtension(siteName); // If extension less try to get custom document extension if (String.IsNullOrEmpty(fileExt)) { fileExt = (!String.IsNullOrEmpty(documentExtensions) ? documentExtensions.Split(';')[0] : String.Empty); } // Get content item URL url = GetContentItemUrl(nodeGuid, documentUrlPath, nodeAlias, nodeAliasPath, nodeIsLink, height, width, maxSideSize, notAttachment, fileExt); } break; case MediaSourceEnum.MetaFile: { // Get information from argument Guid attachmentGuid = ValidationHelper.GetGuid(argTable["metafileguid"], Guid.Empty); string attachmentName = argTable["name"].ToString(); // Get item URL url = GetMetaFileItemUrl(attachmentGuid, attachmentName, height, width, maxSideSize); } break; default: { // Get information from argument Guid attachmentGuid = ValidationHelper.GetGuid(argTable["attachmentguid"], Guid.Empty); string attachmentName = argTable["name"].ToString(); string nodeAliasPath = string.Empty; if (TreeNodeObj != null) { nodeAliasPath = TreeNodeObj.NodeAliasPath; } // Get item URL url = GetAttachmentItemUrl(attachmentGuid, attachmentName, nodeAliasPath, height, width, maxSideSize); } break; } return(url); } return(string.Empty); }