public ResultModel <IEnumerable <dynamic> > GetReportContent(DynamicReportDto reportModel)
        {
            var result = new ResultModel <IEnumerable <dynamic> >
            {
                IsSuccess = true
            };

            IEnumerable <dynamic> Results()
            {
                using (var connection = new NpgsqlConnection(GetConnectionString()))
                {
                    connection.Open();
                    using (var sqlCommand = connection.CreateCommand())
                    {
                        var queryBuilder = new StringBuilder();
                        queryBuilder.Append("SELECT ");
                        if (!reportModel.FieldsList.Any())
                        {
                            queryBuilder.Append(" * ");
                        }
                        else
                        {
                            foreach (var field in reportModel.FieldsList)
                            {
                                queryBuilder.Append(field.AggregateType != AggregateType.None
                                    ? $" {field.AggregateType.GetDescription()}({field.FieldName}) {(string.IsNullOrWhiteSpace(field.FieldAlias) ? "" : $" AS \"{field.FieldAlias}\"")}"
Ejemplo n.º 2
0
 public IActionResult GetReportData(DynamicReportDto model)
 {
     return(Json(new { charts = model.DynamicReportCharts, data = _service.GetReportContent(model) }));
 }