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);
}