Exemple #1
0
        public static string AwesomeDisplay(this IFubuPage page, object model)
        {
            var type   = model.GetType();
            var result = new StringBuilder();
            var tags   = page.Tags(model);
            var sl     = page.Get <IServiceLocator>();

            tags.SetProfile(AwesomeConfiguration.TagProfile);
            var tr = new HtmlTag("tr");

            foreach (var prop in getProperties(type))
            {
                var p = new SingleProperty(prop, type);
                var elementRequest = new ElementRequest(model, p, sl);
                var accessRight    = page.Get <IFieldAccessService>().RightsFor(elementRequest);


                HtmlTag display = tags.DisplayFor(elementRequest).Authorized(accessRight.Read);
                var     td      = new HtmlTag("td").Append(display);
                tr.Append(td);
            }
            var editLink = new LinkTag("Edit", page.EditUrlFor(model));

            tr.Append(new HtmlTag("td").Append(editLink));
            var deleteLink = new LinkTag("Delete", page.DeleteUrlFor(model));

            tr.Append(new HtmlTag("td").Append(deleteLink));
            result.Append(tr.ToString());

            return(result.ToString());
        }