public void ProcessRequest(HttpContext context) { try { String inputStr = context.Request["k"]; if (String.IsNullOrEmpty(inputStr)) return; // Backspace IRepositoryController repositoryController = new RepositoryController(); var allTags = repositoryController.LoadAllTags(); var relativeTags = from t in allTags where t.Name.Equals(inputStr,StringComparison.InvariantCultureIgnoreCase) || t.Name.IndexOf(inputStr,StringComparison.InvariantCultureIgnoreCase) != -1 || inputStr.IndexOf(t.Name, StringComparison.InvariantCultureIgnoreCase) != -1 select t; if (relativeTags.ToList().Count == 0) return; context.Response.AddHeader("Cache-Control", "No-Cache"); context.Response.AddHeader("Pragma", "no-Cache"); context.Response.AddHeader("Last-Modified", DateTime.UtcNow.ToString("r")); context.Response.Expires = -1; context.Response.ContentType = "plain/text"; StringBuilder sb = new StringBuilder(); foreach (Tag tag in relativeTags) sb.AppendFormat("{0},", tag.Name); sb.Remove(sb.Length - 1, 1); context.Response.Write(sb.ToString()); } catch (Exception e) { WayneLogger.WriteLog(e); } }
protected void Page_Load(object sender, EventArgs e) { Master.SubTitle = Resources.WayneBlogMaster.NavTags; IRepositoryController repositoryController = new RepositoryController(); IList<Tag> allTags = repositoryController.LoadAllTags(); const float BASEFOUNTSIZE = 14f; int maxQuoteCount = allTags[0].QuoteTime, minQuoteCount = allTags[allTags.Count - 1].QuoteTime; StringBuilder sb = new StringBuilder(); foreach (var t in allTags.OrderBy(t => t.Name)) { float fontSize = ((float)(t.QuoteTime - minQuoteCount) / (float)(maxQuoteCount - minQuoteCount)) * BASEFOUNTSIZE; sb.AppendFormat("<a href=\"{0}{1}\" style=\"font-size:{2}px;\">{3}[{4}]</a> ", ResolveClientUrl("~/Tag/"), // SInce IIS 7(.5) does not allow "+" in the URL except config it, I replace + with "20%", both are right URL encode for a whiteblank. // Refer: http://blogs.iis.net/thomad/archive/2007/12/17/iis7-rejecting-urls-containing.aspx Server.UrlEncode(t.Name).Replace("+", "%20"), Math.Round(fontSize + BASEFOUNTSIZE, 3), t.Name, t.QuoteTime); } ltrTags.Text = sb.ToString(); }
protected void btnGenerate_Click(object sender, EventArgs e) { IRepositoryController repositoryController = new RepositoryController(); System.Collections.Generic.IList<Blog> allBlogs = repositoryController.LoadAllBlogEntries(); String[] blogIds = txtBlogs.Text.Split(','); System.Collections.Generic.IEnumerable<Blog> technicalBlogs = allBlogs.Where((b) => blogIds.Contains(b.Id.ToString())).ToList(); RSSOperator rssOperator = new RSSOperator(); rssOperator.GenerateCodeProjectFeed(technicalBlogs); }
public void ProcessRequest(HttpContext context) { try { String pageNo = context.Request.QueryString["p"]; //String keyWord = Request.QueryString["k"]; if (String.IsNullOrEmpty(pageNo)) return; int recordCount = 0; ClientJsonObj clientJsonObj = new ClientJsonObj(); IRepositoryController m_RepositoryController = new RepositoryController(); clientJsonObj.CurPageBlogs = m_RepositoryController.LoadBlogEntries(WebUtil.ConvertToNumber(pageNo), out recordCount); foreach (Blog b in clientJsonObj.CurPageBlogs) { b.HyperLink = WebUtil.GetBlogHyperLink(b.Id); b.CatBread = m_RepositoryController.LoadCatBreadCrumbsById(b.CategoryId); } clientJsonObj.TotalBlogCount = recordCount; clientJsonObj.PageSize = WayneBlogConstraint.PageSize; JavaScriptSerializer serializer = new JavaScriptSerializer(); String jsonStr = clientJsonObj.CurPageBlogs == null ? "" : serializer.Serialize(clientJsonObj); context.Response.Clear(); //context.Response.CacheControl = "Public"; //context.Response.Expires = 30; // Content will be expired after 30 minutes. //Response.ExpiresAbsolute = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)); WebUtil.WriteAjaxContentWithGZip(context, "application/json", jsonStr); // Approximate 12.6 kb:) //WebUtil.WriteAjaxContent(context, "application/json", jsonStr); // Approximate 77.4 kb //context.Response.End(); } catch (Exception ex) { WayneLogger.WriteLog(ex); } }
private bool Validation() { string title = txtTitle.Text.Trim(); string permalink = txtPermalink.Text.Trim(); string tags = txtTag.Text.Trim(); string content = txtContent.Text.Trim(); string postTime = txtPostTime.Text; List<string> errs = new List<string>(); if (!WebUtil.CheckLength(title, 50)) errs.Add("标题超过限制长度50."); if (!WebUtil.CheckLength(permalink, 100)) errs.Add("Permalink超过限制长度100."); if (!WebUtil.CheckLength(tags, 500)) errs.Add("Tag超过限制长度500."); if (!WebUtil.CheckLength(content, 200000)) errs.Add("内容超过限制长度200000."); if (!WebUtil.CheckDateTime(postTime)) errs.Add("发表时间不对."); if (!String.IsNullOrEmpty(permalink)) { IRepositoryController iRepositoryController = new RepositoryController(); bool permlinkExists = iRepositoryController.LoadAllBlogEntries().Any((b) => b.Permalink.Equals(permalink)); if (permlinkExists) { if (toBeEditBlogId == 0) // Create new blog errs.Add("Permalink已经存在了!"); else if (permalink != curBlog.Permalink) errs.Add("Permalink已经存在了!"); } } if (errs.Count > 0) { StringBuilder sb = new StringBuilder(); sb.Append("<tr><td bgcolor=\"#FFFFFF\" colspan=\"2\"><dd style=\"color:#FF0000;\">出现下列错误:"); foreach (string err in errs) sb.AppendFormat("<dl>->{0}</dl>", err); sb.Append("</dd></td></tr>"); ltrErrInfo.Text = sb.ToString(); return false; } else return true; }
protected void Page_Load(object sender, EventArgs e) { string condition = Request.QueryString["Condition"]; if (String.IsNullOrWhiteSpace(condition)) Master.ReturnIndex(); try { IList<Blog> blogList = new List<Blog>(); if (condition == "Time") { int year = Convert.ToInt32(Request.QueryString["Year"]); int month = Convert.ToInt32(Request.QueryString["Month"] == null ? "0" : Request.QueryString["Month"]); int day = Convert.ToInt32(Request.QueryString["Day"] == null ? "0" : Request.QueryString["Day"]); blogList = Blog.LoadByPostDate(year, month, day); String archivePeriod = String.Empty; if (month == 0) archivePeriod = CultureInfo.CurrentUICulture.IetfLanguageTag == "zh-CN" ? year + "年" : year.ToString(); else if (day == 0) archivePeriod = (new DateTime(year, month, 1)).ToString("y", CultureInfo.CurrentUICulture); else archivePeriod = (new DateTime(year, month, day)).ToString("D", CultureInfo.CurrentUICulture); Master.SubTitle = archivePeriod + Resources.BlogRenderer.ArchivePostedBlogsText; Master.MetaKeywords.Content = "Blog Archives, " + archivePeriod + ", Wayne Ye"; Master.MetaDescription.Content = "List of blogs archives within " + archivePeriod; lblInfo.Text = String.Format("<br /><span class=\"HighlightWords\" style=\"font-weight:bold;\">" + Resources.BlogRenderer.ShowArchiveBlogsText + "</span><p> </p>", archivePeriod, blogList.Count); br.WordsForNoRecords = Resources.BlogRenderer.SearchBlogNoRecord; br.DataSource = blogList; br.AdminMode = Master.IsAdminMode(); br.DataBind(); } else if (condition == "Category") { IRepositoryController repositoryController = new RepositoryController(); String catPermalink = Request.QueryString["Cat"]; if (String.IsNullOrWhiteSpace(catPermalink)) { Master.ReturnIndex(); return; } if (catPermalink.EndsWith("/")) // Indicates request URI is end with a slash catPermalink = catPermalink.Remove(catPermalink.Length - 1); int catId = repositoryController.LoadCatIdByPermalink(catPermalink); // Cannot find the specified category, throw exception for logging if (catId == 0) Master.Return404(); Master.SubTitle = String.Format(Resources.BlogRenderer.CategoryPageTitle, catPermalink.Replace("/", "»")); Master.MetaKeywords.Content = "Blog Category, " + catPermalink.Replace("/", ", "); Master.MetaDescription.Content = "List of blogs under category: " + catPermalink.Replace("/", "->"); int totalCount = 0; repositoryController.LoadCategoryBlogs(1, catId, out totalCount); String catBreadcrumbs = repositoryController.LoadCatBreadCrumbsById(catId); lblInfo.Text = String.Format("<br /><span style=\"font-weight:bold;\">" + Resources.BlogRenderer.ShowCategorizedBlogsText + "</span><p> </p>", catBreadcrumbs, totalCount); br.CatId = catId; br.CatPermalink = catPermalink; br.AdminMode = Master.IsAdminMode(); br.LoadCategoryBlogs(); } } catch (CategoryNotFoundException cne) { WayneLogger.WriteLog(cne.Message, "CategoryNotFound.log"); Master.Return404(); } //catch(NullReferenceException nre) //{ // WayneLogger.WriteLog("Null reference!" + nre.Message + ", categoryNames: " + categoryNames.VisuallyPrint() // , "NullRefBug.log"); //} catch (Exception ex) { WayneLogger.WriteLog(ex); Master.ReturnIndex(); } }
public static String GetFullBlogLink(int blogId) { IRepositoryController repositoryController = new RepositoryController(); Blog b = repositoryController.LoadBlogById(blogId); return String.IsNullOrEmpty(b.Permalink) ? WebUtil.GetBlogHyperLink(b.Id) : WebUtil.GetBlogPermalink(b.Permalink); }