Exemplo n.º 1
0
        public object GetSeriesRiportDiagram(ReportDiagramSerDto diagram)
        {
            Report report = _reportRepository.Get(diagram.ReportGUID);

            if (report == null)
            {
                throw new NotFoundException("Report not found by GUID.");
            }

            DataTable data       = new DataTable();
            string    sql        = $"select {diagram.NameColumn}, {diagram.SeriesNameColumn}, {diagram.ValueColumn} from {report.Query.ResultTableName} order by {diagram.NameColumn}";
            string    sourceConn = _cfg.GetConnectionString("DefaultConnection");

            using (SqlConnection conn = new SqlConnection(sourceConn))
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                conn.Open();
                data.Load(cmd.ExecuteReader());
            }

            List <SeriesDto>      result   = new List <SeriesDto>();
            string                prevName = string.Empty;
            List <SeriesValueDto> values   = new List <SeriesValueDto>();

            foreach (DataRow row in data.Rows)
            {
                if (prevName != row[diagram.NameColumn].ToString() && !String.IsNullOrEmpty(prevName))
                {
                    result.Add(new SeriesDto
                    {
                        Name   = prevName,
                        Series = values.ToArray()
                    });
                    values.Clear();
                }
                prevName = row[diagram.NameColumn].ToString();
                DateTime date = (DateTime)(row[diagram.SeriesNameColumn]);
                values.Add(new SeriesValueDto
                {
                    Name  = date.ToString("yyyy-MM-dd"),
                    Value = double.Parse(row[diagram.ValueColumn].ToString())
                });
            }
            //add last ones
            result.Add(new SeriesDto
            {
                Name   = prevName,
                Series = values.ToArray()
            });
            return(result.Take(5).ToArray());
        }
Exemplo n.º 2
0
        public IActionResult GetSeriesReportDiagram([FromBody] ReportDiagramSerDto diagram)
        {
            try
            {
                if (diagram == null)
                {
                    throw new BasicException("Invalud input format!");
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var result = _manager.GetSeriesRiportDiagram(diagram);
                return(Ok(result));
            }
            catch (BasicException ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest(ex.Message));
            }
            catch (NotFoundException ex)
            {
                _logger.LogError(ex.Message);
                return(NotFound(ex.Message));
            }
            catch (PermissionException ex)
            {
                _logger.LogError(ex.Message);
                return(Unauthorized());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest());
            }
        }