Ejemplo n.º 1
0
        /// <summary>
        /// 文档发布时候发生
        /// </summary>
        /// <param name="archive"></param>
        static void WatchService_OnArchivePublished(Archive archive)
        {
            return;

            if (archive == null)
            {
                return;
            }

            //更新标签链接
            ArchiveUtility.UpdateArchiveTagLinks("/tags/{0}", archive, true);
            Category category = new CategoryBLL().Get(a => a.ID == archive.Cid);

            PageGenerator.Generate(PageGeneratorObject.ArchivePage, category, archive);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 首页
 /// </summary>
 public void Index()
 {
     PageGenerator.Generate(PageGeneratorObject.Default);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 文档页
        /// </summary>
        /// <param name="tag"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public string Archive(string tag, string id)
        {
            string   html = String.Empty;
            Archive  archive;
            Category category;

            archive = bll.Get(id);
            if (archive != null)
            {
                category = cbll.Get(a => a.ID == archive.Cid);

                if (category != null)
                {
                    const string pattern     = "^/[0-9a-zA-Z]+/[\\.0-9A-Za-z_-]+\\.html$";
                    const string pagePattern = "^/[\\.0-9A-Za-z_-]+\\.html$";

                    if (ArchiveFlag.GetFlag(archive.Flags, ArchiveInternalFlags.AsPage))
                    {
                        if (!Regex.IsMatch(Request.Path, pagePattern))
                        {
                            Response.StatusCode       = 301;
                            Response.RedirectLocation = String.Format("/{0}.html",
                                                                      String.IsNullOrEmpty(archive.Alias) ? archive.ID : archive.Alias
                                                                      );
                            Response.End();
                            return(null);
                        }
                    }
                    else if (!Regex.IsMatch(Request.Path, pattern) ||
                             (String.Compare(tag, category.Tag, true) != 0 || //如果分类tag不对,则301跳转
                              (!String.IsNullOrEmpty(archive.Alias) && String.Compare(id, archive.Alias, true) != 0)
                             ))                                               //设置了别名
                    {
                        Response.StatusCode       = 301;
                        Response.RedirectLocation = String.Format("/{0}/{1}.html",
                                                                  category.Tag,
                                                                  String.IsNullOrEmpty(archive.Alias) ? archive.ID : archive.Alias
                                                                  );
                        Response.End();
                        return(null);
                    }


                    //增加浏览次数
                    ++archive.ViewCount;
                    new System.Threading.Thread(() =>
                    {
                        try
                        {
                            bll.AddViewCount(archive.ID, 1);
                        }
                        catch
                        {
                        }
                    }).Start();

                    //显示页面
                    html = PageGenerator.Generate(PageGeneratorObject.ArchivePage, category, archive);
                    //再次处理模板
                    //html = PageUtility.Render(html, new { }, false);
                }
            }
            else
            {
                html = base.Render404();
            }
            return(html);
        }
    private TableViewPage GeneratePage( PageGenerator pageGenerator )
    {
      var pageResult = pageGenerator.Generate( m_layoutedContainers, m_lastGeneratedPage );

      // Replace the layouted containers.
      m_layoutedContainers.Clear();
      m_layoutedContainers.AddRange( pageResult.LayoutedContainers );
      m_layoutedContainers.Sort();

      m_lastGeneratedPage = pageResult.PageInfo;

      return m_lastGeneratedPage;
    }