Exemplo n.º 1
0
        public override void AssignViewData(Webpage webpage, ViewDataDictionary viewData)
        {
            if (webpage == null)
            {
                return;
            }
            string typeName = webpage.GetType().FullName;

            System.Collections.Generic.List <PageTemplate> templates = _session.QueryOver <PageTemplate>().Where(template => template.PageType == typeName)
                                                                       .OrderBy(template => template.Name).Asc.Cacheable().List().ToList();

            templates = templates.FindAll(template =>
            {
                if (!template.SingleUse)
                {
                    return(true);
                }
                return(!_session.QueryOver <Webpage>().Where(page => page.PageTemplate.Id == template.Id && page.Id != webpage.Id).Any());
            });

            viewData["template-options"] = templates.BuildSelectItemList(template => template.Name,
                                                                         template => template.Id.ToString(),
                                                                         emptyItem: new SelectListItem {
                Text = "Default template", Value = "0"
            });
        }