public async Task<ActionResult> Export() { var userId = GetUserId(); var context = this.DbContext; var filters = context.Filters .Include(o => o.FilterProperties) .Where(o => o.UserId == userId) .ToArray(); if (!filters.Any()) return RedirectToAction("Index"); var filterComponent = new MessageFilterComponent(); var document = filterComponent.ToXml(filters); var stream = new System.IO.MemoryStream(); using (var writer = System.Xml.XmlWriter.Create(stream, new System.Xml.XmlWriterSettings { OmitXmlDeclaration = false, Indent = true })) { document.WriteTo(writer); } stream.Position = 0; await Task.Run(() => new TelemetryClient().TrackEvent("ExportFilter")); return File(stream, "text/xml", string.Format("Export_{0}.xml", DateTime.UtcNow.ToFileTime())); }