How to get specific reports by Id in C#












0















The code generates all events of a specific producer, so that works.
But the problem is that when I return new ApiListModel< EventPerYearReport >() it goes to the class ApiListModel and then it says "status_code": 200, "data": null.



How do I generate, by executing the following URL: /api/dashboard/1, a value instead of "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; }
}









share|improve this question

























  • I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

    – Tom Halson
    Jan 2 at 13:08


















0















The code generates all events of a specific producer, so that works.
But the problem is that when I return new ApiListModel< EventPerYearReport >() it goes to the class ApiListModel and then it says "status_code": 200, "data": null.



How do I generate, by executing the following URL: /api/dashboard/1, a value instead of "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; }
}









share|improve this question

























  • I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

    – Tom Halson
    Jan 2 at 13:08
















0












0








0








The code generates all events of a specific producer, so that works.
But the problem is that when I return new ApiListModel< EventPerYearReport >() it goes to the class ApiListModel and then it says "status_code": 200, "data": null.



How do I generate, by executing the following URL: /api/dashboard/1, a value instead of "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; }
}









share|improve this question
















The code generates all events of a specific producer, so that works.
But the problem is that when I return new ApiListModel< EventPerYearReport >() it goes to the class ApiListModel and then it says "status_code": 200, "data": null.



How do I generate, by executing the following URL: /api/dashboard/1, a value instead of "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; }
}






c# database model report






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 15:36







bhr

















asked Jan 2 at 12:17









bhrbhr

4318




4318













  • I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

    – Tom Halson
    Jan 2 at 13:08





















  • I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

    – Tom Halson
    Jan 2 at 13:08



















I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

– Tom Halson
Jan 2 at 13:08







I'm not 100% sure what you are asking here, are you asking why your code is returning "status_code": 200, "data": null everytime is it executed? If that is the case it is because you are returning return new ApiListModel<EventPerYearReport>(); when you want to be returning return new ApiListModel<EventPerYearReport>({ Data = new EventPerYearReport(){eventsPerYear = results}};

– Tom Halson
Jan 2 at 13:08














1 Answer
1






active

oldest

votes


















0














Your DashboardService.cs is returning new ApiListModel<EventPerYearReport>(); this will always have null data.



To fix this you need to use the following



    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
}
};
}





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54006238%2fhow-to-get-specific-reports-by-id-in-c-sharp%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Your DashboardService.cs is returning new ApiListModel<EventPerYearReport>(); this will always have null data.



    To fix this you need to use the following



        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
    }
    };
    }





    share|improve this answer




























      0














      Your DashboardService.cs is returning new ApiListModel<EventPerYearReport>(); this will always have null data.



      To fix this you need to use the following



          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
      }
      };
      }





      share|improve this answer


























        0












        0








        0







        Your DashboardService.cs is returning new ApiListModel<EventPerYearReport>(); this will always have null data.



        To fix this you need to use the following



            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
        }
        };
        }





        share|improve this answer













        Your DashboardService.cs is returning new ApiListModel<EventPerYearReport>(); this will always have null data.



        To fix this you need to use the following



            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
        }
        };
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 2 at 13:56









        Tom HalsonTom Halson

        8118




        8118
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54006238%2fhow-to-get-specific-reports-by-id-in-c-sharp%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith