public void DoSaveCSV(object sender, EventArgs e) { try { CultureInfo csvCulture = CultureResolver.ResolveCsvCulture(Request); CSVFormatter csvformat = new CSVFormatter(csvCulture); // Create Header var filter = SearchFilter; bool isConfidentialityAffected = WasteTransfers.IsAffectedByConfidentiality(filter); var tempFilter = filter.Clone() as WasteTransferSearchFilter; tempFilter.WasteTypeFilter = new WasteTypeFilter(SelectedWasteType); Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetWasteTransfersSearchHeader( tempFilter, isConfidentialityAffected); // Create Body var facilities = WasteTransfers.GetFacilityListCSV(tempFilter); // dump to file string topheader = csvformat.CreateHeader(header); string facilityHeader = csvformat.GetWasteTransfersFacilityHeader(); string url = Request.Url.AbsoluteUri; url = url.Substring(0, url.LastIndexOf("/") + 1); Response.WriteUtf8FileHeader("EPRTR_Waste_Transfers_Facility_List"); Response.Write(topheader + facilityHeader); foreach (var item in facilities) { item.Url = String.Format("{0}/PopupFacilityDetails.aspx?FacilityReportId={1}", url, item.FacilityReportId); string row = csvformat.GetWasteTransfersFacilityRow(item); Response.Write(row); } Response.End(); } catch { } }