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
        {
        }
    }