예제 #1
0
        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);
            }
        }
예제 #2
0
        /// <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);
        }