public String GetFinalURL(reportDocument document, DateTime date = default(DateTime), Dictionary <permalinkStructure.permalinkElements, String> extraData = null, Boolean completeForm = true) { if (!completeForm) { return(permalink.GetPermalink(document, date, extraData)); } else { String linkPrefix = FrontEndBaseUrl.add(permalink.GetPermalink(document, date, extraData), "/"); return(linkPrefix); } }
/// <summary> /// Gets the permalink. /// </summary> /// <param name="document">The document.</param> /// <param name="date">The date.</param> /// <param name="extraData">The extra data.</param> /// <returns></returns> public String GetPermalink(reportDocument document, DateTime date = default(DateTime), Dictionary <permalinkElements, String> extraData = null) { String output = customStructure; foreach (String str_form in elementsUsed) { if (output.Contains(str_form)) { permalinkElements element = elementsByString[str_form]; String replacement = ""; switch (element) { case permalinkElements.category: String p = GetSlug(document.GetCategoryPath(true, true)); if (p.isNullOrEmpty()) { p = UNCATEGORIZED_NAME; } replacement = p; break; case permalinkElements.day: replacement = date.ToString("dd"); break; case permalinkElements.hour: replacement = date.ToString("hh"); break; case permalinkElements.minute: replacement = date.ToString("mm"); break; case permalinkElements.monthnum: replacement = date.ToString("MM"); break; case permalinkElements.post_id: break; case permalinkElements.postname: replacement = GetSlug(document.Title); break; case permalinkElements.second: replacement = date.ToString("s"); break; case permalinkElements.year: replacement = date.ToString("yyyy"); break; default: if (extraData != null) { if (extraData.ContainsKey(element)) { replacement = extraData[element]; } } break; } output = output.Replace(str_form, replacement); } } return(output); }