public async Task <IActionResult> GetRegistrationAudit(string id) { if (!long.TryParse(id, out var essFileNumber)) { return(BadRequest($"'{id}' not a valid ESS file number")); } var registration = await mediator.Send(new RegistrationSummaryQueryRequest(id)); if (registration == null) { return(NotFound()); } var results = await mediator.Send(new RegistrationAuditQueryRequest(essFileNumber)); Response.Headers.Add("Content-Disposition", $"inline; filename=\"{id}.csv\""); return(Content(results .Select(e => new { e.EssFileNumber, e.UserName, //The time zone being recorded in the audit is UTC and the OpenShift pods local time is UTC, the below ensures that PST is always returned Date = TimeZoneConverter.GetFormatedLocalDateTime(e.DateViewed), //eg: Tue 11 Jun 2019 11:36:22 PDT e.Reason }) .ToCSV(), "text/csv")); }