示例#1
0
        public ActionResult EditReport(Guid reportId)
        {
            using (var service = ServiceLocator.Instance.Resolve <IReportService>())
            {
                var report       = service.FindReport(reportId);
                var tableSchemas = this.GetTableSchema(report.Rdbms, report.ReportName);

                var model = new ReportModifyViewModel {
                    Report = report, TableSchemas = tableSchemas
                };
                this.GetViewBags();

                return(PartialView(model));
            }
        }
示例#2
0
        public ActionResult EditReport(ReportModifyViewModel model, IEnumerable <string> colunms)
        {
            try
            {
                var creator   = this.LoginUser.Identity.Name;
                var reportDto = model.Report;
                using (var service = ServiceLocator.Instance.Resolve <IReportService>())
                {
                    // modify the report header
                    service.UpdateReportHeader(reportDto.ID, reportDto.DisplayName, reportDto.Description, creator);

                    // modify the report fields (add / remove)
                    var report       = service.FindReport(reportDto.ID);
                    var tableSchemas = this.GetTableSchema(report.Rdbms, report.ReportName);

                    // firstly remove all,then add and sort
                    IEnumerable <ReportFieldDto> addingFileds = null;
                    if (colunms != null)
                    {
                        addingFileds = (from table in tableSchemas
                                        where colunms.Contains(table.ColunmName)
                                        select new ReportFieldDto
                        {
                            FieldName = table.ColunmName,
                            DisplayName = table.ColunmName,
                            DataType = table.DataType,
                            CreatedBy = creator
                        });
                    }

                    service.SetReportFields(reportDto.ID, addingFileds);
                }

                return(Json(true));
            }
            catch (Exception)
            {
                return(Json(false, "Update the report failure."));
            }
        }