public HttpResponseMessage DownloadDocument() { try { var filePath = StudentPathProvider.GetPathToDownloadFrom(); var stream = new FileStream(filePath, FileMode.Open); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(stream) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.ContentDisposition.FileName = "Students.csv"; return(result); } catch (Exception ex) { var message = ex.Message; return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, message)); } }