Aqueduct.SitecoreLib.LinkUrl.GetUrl C# (CSharp) Метод

GetUrl() статический приватный Метод

static private GetUrl ( System.Xml.Linq.XElement field, Database database ) : Link
field System.Xml.Linq.XElement
database Database
Результат Link
	    internal static Link GetUrl (XElement field, Database database)
		{
			string attribute = GetAttributeValue(field, "linktype");
			string url = GetAttributeValue(field, "url");
			string caption = GetAttributeValue(field, "text");
			string itemId = GetAttributeValue(field, "id");
			string anchor = GetAttributeValue(field, "anchor");
			string queryString = GetAttributeValue(field, "querystring");
            string target = GetAttributeValue(field, "target");
            string cssClass = GetAttributeValue(field, "class");

            var link = new Link { Caption = caption, Target = target, CssClass = cssClass };
	        if (!string.IsNullOrEmpty(anchor))
			{
				anchor = "#" + anchor;
			}
			switch (attribute)
			{
				case "anchor":
					link.LinkType = LinkTypes.Anchor;
					link.Url = anchor;
					break;
				case "external":
					link.LinkType = LinkTypes.External;
					link.Url = GetExternalUrl(url);
					break;
				case "javascript":
					link.LinkType = LinkTypes.JavaScript;
					link.Url = GetJavaScriptUrl(url);
					break;
				case "mailto":
					link.LinkType = LinkTypes.MailTo;
					link.Url = GetMailToLink(url);
					break;
				case "media":
					link.LinkType = LinkTypes.Media;
					link.Url = GetMediaUrl(database, itemId);
					break;
                default: // assume "internal"
                    link.LinkType = LinkTypes.Internal;
                    link.Url = GetInternalUrl(database, url, itemId, anchor, queryString);
                    break;
            }
			return link;
		}