Exemple #1
0
        public ActionResult EditHql(int id)
        {
            if (!services.Authorizer.Authorize(Permissions.ManageQueries, T("Not authorized to list Reports")))
            {
                return(new HttpUnauthorizedResult());
            }

            var report = reportRepository.Table.FirstOrDefault(c => c.Id == id);

            if (report == null)
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentUICulture, "{0}={1}", T("There is no report with the Id"), id.ToString(CultureInfo.InvariantCulture)));
            }

            var model = new HqlReportViewModel {
                ReportId      = report.Id,
                Title         = report.Title,
                Name          = report.Name,
                ColumnAliases = report.ColumnAliases,
                QueryId       = report.Query != null ? (int?)report.Query.Id : null
            };

            FillRelatedData(model);

            return(View(model));
        }
Exemple #2
0
        public ActionResult CreateHqlPost(HqlReportViewModel model)
        {
            if (!services.Authorizer.Authorize(Permissions.ManageQueries, T("Not authorized to list Reports")))
            {
                return(new HttpUnauthorizedResult());
            }

            if (!ModelState.IsValid)
            {
                model = model ?? new HqlReportViewModel();
                FillRelatedData(model);
                return(View("CreateHql", model));
            }

            ReportRecord newReport = new ReportRecord {
                Title = model.Title,
                Name  = model.Name,
                Query = new QueryPartRecord {
                    Id = model.QueryId.Value
                },
                GroupByCategory = "",
                GroupByType     = "",
                AggregateMethod = 0,
                ColumnAliases   = model.ColumnAliases,
                GUID            = Guid.NewGuid().ToString()
            };

            reportRepository.Create(newReport);
            reportRepository.Flush();

            return(RedirectToAction("Index"));
        }
Exemple #3
0
        public ActionResult CreateHql()
        {
            if (!services.Authorizer.Authorize(Permissions.ManageQueries, T("Not authorized to list Reports")))
            {
                return(new HttpUnauthorizedResult());
            }

            var model = new HqlReportViewModel();

            FillRelatedData(model);

            return(View(model));
        }
Exemple #4
0
        private void FillRelatedData(HqlReportViewModel model)
        {
            var queries = services.ContentManager.Query().ForType("MyCustomQuery").List();

            // Fill queries
            foreach (var query in queries)
            {
                var title = query.As <TitlePart>();
                model.Queries.Add(new SelectListItem {
                    Text  = title != null ? title.Title : T("[No Name]").Text,
                    Value = query.Id.ToString()
                });
            }
        }
Exemple #5
0
        public ActionResult EditHqlPost(HqlReportViewModel model)
        {
            if (!services.Authorizer.Authorize(Permissions.ManageQueries, T("Not authorized to list Reports")))
            {
                return(new HttpUnauthorizedResult());
            }

            if (!ModelState.IsValid)
            {
                model = model ?? new HqlReportViewModel();
                FillRelatedData(model);
                return(View("EditHql", model));
            }

            ReportRecord report = reportRepository.Get(model.ReportId);

            if (report == null)
            {
                if (!ModelState.IsValid)
                {
                    ModelState.AddModelError("ReportId", T("There is no report with the given Id").Text);
                    FillRelatedData(model);
                    return(View("EditHql", model));
                }
            }

            report.Title = model.Title;
            report.Name  = model.Name;
            report.Query = model.QueryId.HasValue ? new QueryPartRecord {
                Id = model.QueryId.Value
            } : null;
            report.GroupByCategory = "";
            report.GroupByType     = "";
            report.AggregateMethod = 0;
            report.ColumnAliases   = model.ColumnAliases;
            if (string.IsNullOrWhiteSpace(report.GUID))
            {
                report.GUID = Guid.NewGuid().ToString();
            }

            reportRepository.Update(report);
            reportRepository.Flush();

            return(RedirectToAction("Index"));
        }