class ReportIndicatorListViewController {

    public String get() {
        reportsCategory = ReportsCategory.valueOf(category);

        reports = allReports.allFor(reportsCategory.indicators());

        List<IndicatorReport> indicatorReports = new ArrayList<IndicatorReport>();
        for (Report report : reports) {
            ReportIndicator indicator = report.reportIndicator();
            List<MonthSummaryDatum> monthSummaryData = report.monthlySummaries();
            if (monthSummaryData.size() == 0) {
                continue;
            }
            sortMonthlySummaries(monthSummaryData);
            MonthSummaryDatum currentMonthSummary = monthSummaryData.get(0);

            String currentMonth = today().monthOfYear().getAsString();
            String currentProgress =
                    currentMonthSummary.month().equals(currentMonth) ? currentMonthSummary
                            .currentProgress() : "0";
            String annualTarget = (isBlank(report.annualTarget())) ? "NA" : report.annualTarget();

            indicatorReports.add(new IndicatorReport(indicator.name(), indicator.description(),
                    annualTarget, currentProgress, currentMonth, currentMonthSummary.year(),
                    currentMonthSummary.aggregatedProgress()));
        }

        return new Gson()
                .toJson(new CategoryReports(reportsCategory.description(), indicatorReports));
    }

    public  ReportIndicatorListViewController(Context context, AllReports allReports, String
            category);

}