using System.Collections.Generic; using System.Web.Mvc; using Neo.Legitimate.Vehicles.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using Pilotfish.Afx.Services.Integration; using Pilotfish.Afx.Services.Reports; using Pilotfish.Afx.ViewModels; using System.Linq; using Neo.Legitimate.Common; namespace Neo.Legitimate.Vehicles.Controllers { public partial class VehiclesController : Neo.Legitimate.Common.ControllerBase { #region Action Results #region ReportDefinition public ActionResult ReportDefinition(long reportDefinitionID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.VehiclesModule_Reports)) { return RedirectToAction("Default", "Applications"); } var reportDatabase = new ReportDatabase(); var model = new ReportDefinitionModel() { UserID = Profile.UserID, UserRoles = Profile.Roles, ReportDefinition = reportDatabase.GetReportDefinition(reportDefinitionID), Lookups = GetLookups(reportDatabase, reportDefinitionID) }; ViewBag.Controller = "Vehicles"; ViewBag.Page = "Reports"; return View("ReportDefinition", model); } #endregion #endregion #region GetLookups public List GetLookups(ReportDatabase reportDatabase, long reportDefinitionID) { var lookups = new List(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); if (reportDefinitionID > 0 && reportDatabase.GetReportDefinitionCriterias(reportDefinitionID).Count > 0) { lookups.AddRange(from criteria in reportDatabase.GetReportDefinitionCriterias(reportDefinitionID) where !string.IsNullOrEmpty(criteria.DataSourceName) select new LookupList("CaptureFieldLookup" + criteria.DataSourceName, integrationStore.GetDataEntities(criteria.DataSourceName, string.Empty))); } } finally { integrationStore.Close(); } return lookups; } #endregion #region JSON endpoints #endregion } }