public async Task <HttpResponseMessage> GenerateSummaryReport() { var query = new GenerateTimeEntrySummaryReportQuery() { IncludeTimeEntriesOfAllUsers = false, QueryString = HttpUtility.UrlDecode(Request.RequestUri.Query) }; try { var reportItems = await timeEntryService.GenerateSummaryReport(query); var response = new HttpResponseMessage(); var content = timeEntrySummaryReportTemplating.Parse(reportItems); response.Content = new StringContent(content); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return(response); } catch (ValidationException ex) { var response = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest); response.Content = new StringContent(ex.Message); return(response); } catch (AuthorizationException) { var response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden); return(response); } }