public ViewReportModule()
            : base(AccessLevels.User, "View Reports", "report", "viewreports", "viewreport")
        {
            Before += ctx =>
            {
                this.Context.ViewBag.IsViewReport = true;
                return(null);
            };

            Post["/getreport"] = _ =>
            {
                int id = -1;
                if (this.Request.Form["objectID"] != null &&
                    int.TryParse(this.Request.Form["objectID"], out id))
                {
                    string errormessage;

                    DisplayReportItem item = GetDisplayItem(id, out errormessage);

                    if (!String.IsNullOrWhiteSpace(errormessage))
                    {
                        return(Response.AsJson(errormessage));
                    }

                    item.CreateTemplate(out errormessage);
                    if (!String.IsNullOrWhiteSpace(errormessage))
                    {
                        return(Response.AsJson(errormessage));
                    }
                    return(Response.AsJson(item.TemplateHTML));
                }
                return(Response.AsJson("Invalid id"));
            };
        }
        protected override object ProcessDisplayItem(int id, out string errormessage)
        {
            this.StretchContainer(true);
            Dictionary <string, object> formValues = (this.Request.Form as Nancy.DynamicDictionary).ToDictionary();
            DisplayReportItem           item       = this.GetDisplayItem(id, out errormessage);

            if (!String.IsNullOrWhiteSpace(errormessage))
            {
                return(null);
            }

            if (item.ReportItem.FormItem != null)
            {
                item.CreateForm(out errormessage);
                if (!String.IsNullOrWhiteSpace(errormessage))
                {
                    return(null);
                }
            }
            return(item);
        }