public ActionResult <List <Object> > GetReport([FromQuery] string option, [FromQuery] int year, [FromQuery] int month) { IEnumerable <Object> res = null; if (option == "annual") { res = _customerService.Accept(new AnnualReportVisitor(new DateTime(year, 1, 1), new DateTime(year + 1, 1, 1))); } if (option == "monthly") { int endMonth = month + 1; int endYear = year; if (month == 12) { endMonth = 1; endYear++; } res = _customerService.Accept(new MonthlyReportVisitor(new DateTime(year, month, 1), new DateTime(endYear, endMonth, 1))); } if (res == null) { return(BadRequest()); } return(new List <Object>(res)); }