private IEnumerable <CustomReportFilterViewModel> GetFilters(CustomReportView_ViewModel model, CustomReportBaseDataViewModel it) { Regex rg = new Regex(@"\(.*?\)"); model.ValuesListString = rg.Replace(model.ValuesListString, "").Replace(" GMT+", ".").Replace(" GMT ", "."); model.ValuesList = model.ValuesListString.Split(';').ToList(); model.IdsList = model.IdsListString.Split(';').Select(x => long.Parse(x)).ToList(); var filters = model.IdsList.Zip(model.ValuesList, (i, v) => new { Id = i, Value = v }).Where(x => !String.IsNullOrEmpty(x.Value)).ToList(); var initFilters = it.GetAllAvailableFilters(Db); var res = from f in filters join i in initFilters on f.Id equals i.Id select new CustomReportFilterViewModel() { Id = i.Id, Field = i.Field, Operation = i.Operation, ValueString = f.Value, Value = SystemTypeHelper.GetObjectByString(f.Value, i.Field.DataType, i.Multi) }; return(res.Where(x => !String.IsNullOrEmpty(x.ValueString))); }
public virtual ActionResult Index(string type) { LogI("Index"); ViewBag.ReportId = 0; type = type ?? "CustomReportIncomeDisparityViewModel"; var it = (CustomReportBaseDataViewModel)Activator.CreateInstance("Ccen.Web", "Ccen.Web.ViewModels.CustomReports.Entities." + type).Unwrap(); //var report = CustomReportViewModel.GetById(Db, id); ViewBag.Title = ""; var model = new CustomReportView_ViewModel(); //var CustomReportBaseDataViewModel model.ReportTitle = ""; model.ReportId = 0; model.Fields = it.GetAllAvailableFields(); model.Filters = it.GetAllAvailableFilters(Db); model.ReportDataType = type; //model.Fil return(View("Index", model)); //return View(); }
public virtual ActionResult ExportToExcel(CustomReportView_ViewModel model) { LogI("ExportToExcel, reportId=" + model.ReportDataType); model.ReportDataType = model.ReportDataType ?? "CustomReportIncomeDisparityViewModel"; var it = (CustomReportBaseDataViewModel)Activator.CreateInstance("Ccen.Web", "Ccen.Web.ViewModels.CustomReports.Entities." + model.ReportDataType).Unwrap(); var filters = GetFilters(model, it); var items = it.GetTop1000(Db, filters.ToList()); var ms = ExcelHelper.Export(items, it.GetType(), null); var arr = ms.ToArray(); return(File(arr, "application/vnd.ms-excel", //MIME type of Excel files $"CustomReport{ model.ReportDataType }.xls")); //Suggested file name in the "Save as" dialog which will be displayed to the end user*/ }
//private static long ReportId; /*public virtual ActionResult Index(long id) * { * LogI("Index"); * ViewBag.ReportId = id; * var report = CustomReportViewModel.GetById(Db, id); * ViewBag.Title = report == null ? "" : report.Name; * ViewBag.Columns = CustomReportDataItemViewModel.GetColumns(Db, id); * * var model = new CustomReportView_ViewModel(); * model.ReportTitle = report == null ? "" : report.Name; * model.ReportId = id; * model.Fields = CustomReportFieldViewModel.GetCustomReportFields(id, Db).ToList(); * return View("Index", model); * }*/ public virtual ActionResult GetReportItems([DataSourceRequest] DataSourceRequest request, CustomReportView_ViewModel model, [Bind(Prefix = "valuesList[]")] List <string> Filters) { LogI("GetAll"); model.ReportDataType = model.ReportDataType ?? "CustomReportIncomeDisparityViewModel"; //model.ReportDataType = model.ReportDataType ?? "CustomReportIncomeDisparityViewModel"; var it = (CustomReportBaseDataViewModel)Activator.CreateInstance("Ccen.Web", "Ccen.Web.ViewModels.CustomReports.Entities." + model.ReportDataType).Unwrap(); request.Sorts = BuildFrom(it); var filters = GetFilters(model, it); var items = it.GetAll(Db, filters.ToList()); var dataSource = items.ToDataSourceResult(request); return(new JsonResult { Data = dataSource, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }