Example #1
0
        //+
        //- $FindBlogEntryType -//
        private BlogEntryType FindBlogEntryType(String blogEntryTypeGuid)
        {
            String indexScope = "MinimaIndexImage";
            //+
            BlogEntryType blogEntryType = Themelia.Web.HttpData.GetScopedCacheItem <BlogEntryType>(indexScope, blogEntryTypeGuid);

            if (blogEntryType == null)
            {
                List <String>        guidList          = new List <String>(new String[] { blogEntryTypeGuid });
                String               blogGuid          = Themelia.Web.HttpData.GetScopedCacheItem <String>(Info.Scope, Info.BlogGuid);
                List <BlogEntryType> blogEntryTypeList = Minima.Service.Agent.BlogAgent.GetBlogEntryTypeList(blogGuid, guidList);
                if (blogEntryTypeList != null && blogEntryTypeList.Count > 0)
                {
                    blogEntryType = blogEntryTypeList[0];
                    Themelia.Web.HttpData.SetScopedCacheItem <BlogEntryType>(indexScope, blogEntryTypeGuid, blogEntryType);
                }
            }
            //+
            return(blogEntryType);
        }
Example #2
0
 //+
 //- @InstantiateIn -//
 public void InstantiateIn(System.Web.UI.Control container)
 {
     System.Web.UI.WebControls.PlaceHolder pane = new System.Web.UI.WebControls.PlaceHolder();
     switch (type)
     {
     case ListItemType.Item:
         pane.DataBinding += new EventHandler(delegate(Object sender, System.EventArgs ea)
         {
             RepeaterItem item = (RepeaterItem)pane.NamingContainer;
             //+
             System.Web.UI.WebControls.Literal dtHeader = new System.Web.UI.WebControls.Literal();
             dtHeader.Text = "<dl class=\"index-section-list\"><dt>";
             pane.Controls.Add(dtHeader);
             //+
             System.Web.UI.WebControls.Literal image = new System.Web.UI.WebControls.Literal();
             Themelia.Template template  = new Themelia.Template(Themelia.Template.Common.Image);
             Themelia.Map map            = new Themelia.Map();
             BlogEntryType blogEntryType = FindBlogEntryType((String)DataBinder.Eval(item.DataItem, "TypeGuid"));
             if (blogEntryType != null && !String.IsNullOrEmpty(blogEntryType.Extra))
             {
                 map.Add("Source", blogEntryType.Extra);
                 map.Add("Text", blogEntryType.Name);
                 image.Text = template.Interpolate(map);
                 pane.Controls.Add(image);
             }
             //+
             System.Web.UI.WebControls.Literal dtddConnection = new System.Web.UI.WebControls.Literal();
             dtddConnection.Text = "</dt><dd>";
             pane.Controls.Add(dtddConnection);
             //+
             System.Web.UI.WebControls.Literal link = new System.Web.UI.WebControls.Literal();
             template = new Themelia.Template(Themelia.Template.Common.Link);
             map      = new Themelia.Map();
             map.Add("Link", (String)DataBinder.Eval(item.DataItem, "Url"));
             map.Add("Text", (String)DataBinder.Eval(item.DataItem, "Title"));
             link.Text = template.Interpolate(map);
             pane.Controls.Add(link);
             //+
             List <Minima.Service.Label> labelList = (List <Minima.Service.Label>)DataBinder.Eval(item.DataItem, "LabelList");
             if (labelList != null && labelList.Count > 0)
             {
                 Repeater rptLabel   = new Repeater();
                 rptLabel.DataSource = labelList.Select(label => new
                 {
                     Title = label.Title,
                     Url   = LabelHelper.GetLabelUrl(label)
                 });
                 rptLabel.HeaderTemplate = new IndexLabelListTemplate(ListItemType.Header);
                 rptLabel.ItemTemplate   = new IndexLabelListTemplate(ListItemType.Item);
                 rptLabel.FooterTemplate = new IndexLabelListTemplate(ListItemType.Footer);
                 pane.Controls.Add(rptLabel);
             }
             //+
             System.Web.UI.WebControls.Literal ddFooter = new System.Web.UI.WebControls.Literal();
             ddFooter.Text = "</dd></dl>";
             pane.Controls.Add(ddFooter);
         });
         break;
     }
     container.Controls.Add(pane);
 }