BlogEngine.Core.Web.HttpModules.UrlRewrite.RewritePost C# (CSharp) 메소드

RewritePost() 개인적인 정적인 메소드

Rewrites the post.
private static RewritePost ( HttpContext context, string url ) : void
context System.Web.HttpContext The context.
url string The URL string.
리턴 void
        private static void RewritePost(HttpContext context, string url)
        {
            int year, month, day;

            var haveDate = ExtractDate(context, out year, out month, out day);
            var slug = ExtractTitle(context, url);

            // Allow for Year/Month only dates in URL (in this case, day == 0), as well as Year/Month/Day dates.
            // first make sure the Year and Month match.
            // if a day is also available, make sure the Day matches.
            var post = Post.Posts.Find(
                p =>
                (!haveDate || (p.DateCreated.Year == year && p.DateCreated.Month == month)) &&
                ((!haveDate || (day == 0 || p.DateCreated.Day == day)) &&
                 slug.Equals(Utils.RemoveIllegalCharacters(p.Slug), StringComparison.OrdinalIgnoreCase)));

            if (post == null) {
                return;
            }

            var q = GetQueryString(context);
            q = q.Contains("id=", StringComparison.OrdinalIgnoreCase) ? string.Format("{0}post.aspx?{1}", Utils.ApplicationRelativeWebRoot, q) : string.Format("{0}post.aspx?id={1}{2}", Utils.ApplicationRelativeWebRoot, post.Id, q);

            context.RewritePath(
                url.Contains("/FEED/")
                    ? string.Format("syndication.axd?post={0}{1}", post.Id, GetQueryString(context))
                    : q,
                false);
        }