public async Task <IActionResult> GenerateReport([FromBody] MetricsRequestDto request) { if (!ModelState.IsValid) { return(BadRequest()); } try { var metricsRequest = _mapper.Map <MetricsRequest>(request); var response = await _reportingService.GenerateReport(metricsRequest); return(new OkObjectResult(response)); } catch (UnauthorizedAccessException e) { return(new UnauthorizedObjectResult(e.Message)); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e.Message)); } }