public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            [Inject] IPeriodEndMetricsService periodEndMetricsService)
        {
            long.TryParse(req.Query["jobId"], out var jobId);
            short.TryParse(req.Query["academicYear"], out var academicYear);
            byte.TryParse(req.Query["collectionPeriod"], out var collectionPeriod);

            var result = await periodEndMetricsService.BuildMetrics(jobId, academicYear, collectionPeriod, CancellationToken.None);

            if (result == null)
            {
                throw new ApplicationException("Error in Period End Request Reports");
            }

            return(new OkObjectResult(result)); //200
        }
 public PeriodEndRequestReportsEventHandler(IPaymentLogger logger, IPeriodEndMetricsService periodEndMetricsService)
 {
     this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
     this.periodEndMetricsService = periodEndMetricsService ?? throw new ArgumentNullException(nameof(periodEndMetricsService));
 }