繁体   English   中英

如何在C#中通过ID获取特定报告

[英]How to get specific reports by Id in C#

该代码生成特定生产者的所有事件,因此可以正常工作。 但是问题是,当我返回新的ApiListModel <EventPerYearReport>()时,它将转到类ApiListModel,然后说“ status_code”:200,“ data”:null。

如何通过执行以下URL:/ api / dashboard / 1生成一个值,而不是“ status_code”:200,“ data”:null?

DashboardController.cs

    [HttpGet("{id}")]
    public async Task<ApiListModel<EventPerYearReport>> GetEventPerYearReport(int id)
    {
        return await _dashboardService.GetEventPerYearReport(id);
    }

DashboardService.cs

    public async Task<ApiListModel<EventPerYearReport>> GetEventPerYearReport(int id)
    {
        var results = _dbContext.Events
            .Where(p => p.ProducerId == id)
            .GroupBy(e => e.DateStartEvent.ToString("yyyy"), (year, values) => new EventPerYear
            {
                year = year,
                total = values.Count(),
            }).ToList();

        var report = new EventPerYearReport()
        {
            eventsPerYear = results
        };
        return new ApiListModel<EventPerYearReport>();
    }

ApiListModel.cs

public class ApiListModel<T>
{
    [JsonProperty(PropertyName = "status_code")]
    public int StatusCode = 200;

    [JsonProperty(PropertyName = "data")]
    public List<T> Data;
}

EventPerYearReport.cs

public class EventPerYearReport
{
    public List<EventPerYear> eventsPerYear { get; set; }
}

您的DashboardService.cs返回new ApiListModel<EventPerYearReport>(); 这将始终具有空数据。

要解决此问题,您需要使用以下内容

    public async Task<ApiListModel<EventPerYearReport>> GetEventPerYearReport(int id)
        {
            var results = _dbContext.Events
                .Where(p => p.ProducerId == id)
                .GroupBy(e => e.DateStartEvent.ToString("yyyy"), (year, values) 
    => new EventPerYear
                {
                    year = year,
                    total = values.Count(),
                }).ToList();
        return new ApiListModel<EventPerYearReport>()
        {
            Data = new EventPerYearRaport()
            {
                eventsPerYear = results
            }
        };
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM