示例#1
0
    /// <summary>
    /// Save
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            bool confidentialityAffected       = PollutantTransferTrend.IsAffectedByConfidentiality(FacilityBasic.FacilityID, PollutantCode);
            Dictionary <string, string> header = CsvHeaderBuilder.GetFacilityTrendHeader(FacilityBasic.FacilityReportId, true);

            // Create Body
            string pollutantName = LOVResources.PollutantName(PollutantCode);
            List <TimeSeriesClasses.PollutantTransfers> data = getTimeSeriesData(FacilityBasic.FacilityID, PollutantCode);

            // dump to file
            string topheader       = csvformat.CreateHeader(header);
            string pollutantHeader = csvformat.GetPollutantTransfersTrendHeader();

            Response.WriteUtf8FileHeader("EPRTR_Pollutant_Transfers_Time_Series");

            Response.Write(topheader + pollutantHeader);
            foreach (var v in data)
            {
                string row = csvformat.GetPollutantTransfersTrendRow(v, pollutantName);
                Response.Write(row);
            }
            Response.End();
        }
        catch
        {
        }
    }
示例#2
0
        static void Main(string[] args)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            var csvHelper = new CSVFormatter();

            var trainingArray = File.ReadAllLines("ExcelFiles/trainingsample.csv");
            var recordsList   = csvHelper.FormatToRecordList(trainingArray);

            var validationArray       = File.ReadAllLines("ExcelFiles/validationsample.csv");
            var validationrecordsList = csvHelper.FormatToRecordList(validationArray);

            var results  = Prediction.Predict(recordsList, validationrecordsList);
            int accuracy = 0;

            for (var i = 0; i < results.ToArray().Length; i++)
            {
                if (results[i].Number.Equals(validationrecordsList[i].Number))
                {
                    accuracy++;
                }
                //Console.WriteLine($" The closest match for{i}-th record is {results[i].Number} || {validationrecordsList[i].Number} distance of {results[i].DistanceToNumber}");
            }
            Console.WriteLine($"Accuracy is {accuracy} out of {validationArray.Length}");
            sw.Stop();
            Console.WriteLine(sw.Elapsed);
            Console.ReadLine();
        }
示例#3
0
    /// <summary>
    /// Save transfers data
    /// </summary>
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        bool ConfidentialityAffected = WasteTransfers.IsAffectedByConfidentiality(SearchFilter);

        // Create Header
        Dictionary <string, string> header = CsvHeaderBuilder.GetWasteTransfersSearchHeader(
            SearchFilter,
            ConfidentialityAffected);

        IEnumerable <WasteTransfers.TransboundaryHazardousWasteData> wastedata =
            WasteTransfers.GetTransboundaryHazardousWasteData(
                SearchFilter,
                ConfidentialityAffected);

        Response.WriteUtf8FileHeader("EPRTR_Waste_Transfers_Transboundary_Hazardous");

        // dump to file
        string topheader   = csvformat.CreateHeader(header);
        string wasteHeader = csvformat.GetWasteHeader();

        Response.Write(topheader + wasteHeader);
        foreach (var v in wastedata)
        {
            string row = csvformat.GetWasteRow(v);
            Response.Write(row);
        }
        Response.End();
    }
        public void CSVFormatting_WithValidInput_ThenOK()
        {
            //Arrange

            var input = new List <Sentence>
            {
                new Sentence {
                    Words = new List <string> {
                        "a", "had", "lamb", "little", "Mary"
                    }
                },
                new Sentence {
                    Words = new List <string> {
                        "Aesop", "and", "called", "came", "for", "Peter", "the", "wolf"
                    }
                }
            };

            var expected = @", Word 1, Word 2, Word 3, Word 4, Word 5, Word 6, Word 7, Word 8
Sentence 1, a, had, lamb, little, Mary
Sentence 2, Aesop, and, called, came, for, Peter, the, wolf";

            //Act
            var csvFormatter = new CSVFormatter();
            var actual       = csvFormatter.Format(input);

            //Assert
            expected.Should().BeEquivalentTo(actual);
        }
    /// <summary>
    /// Save transfers data
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            var header = CsvHeaderBuilder.GetTsPollutantTransfersSearchHeader(SearchFilter, ConfidentialityAffected);

            var data = PollutantTransferTrend.GetTimeSeries(SearchFilter);

            var    pollutant     = ListOfValues.GetPollutant(SearchFilter.PollutantFilter.PollutantID);
            string pollutantName = LOVResources.PollutantName(pollutant.Code);

            // dump to file
            string topheader  = csvformat.CreateHeader(header);
            string rowheaders = csvformat.GetPollutantTransfersTimeSeriesHeader();

            Response.WriteUtf8FileHeader("EPRTR_Pollutant_Transfers_Time_Series");

            Response.Write(topheader + rowheaders);

            foreach (var v in data)
            {
                string row = csvformat.GetPollutantTransfersTimeSeriesRow(v, pollutantName);
                Response.Write(row);
            }
            Response.End();
        }
        catch
        {
        }
    }
示例#6
0
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        IndustrialActivitySearchFilter filter = SearchFilter;

        bool isConfidentialityAffected = IndustrialActivity.IsWasteAffectedByConfidentiality(filter);

        Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetIndustrialActivitySearchHeader(
            filter,
            isConfidentialityAffected);

        // Create Body
        var rows = IndustrialActivity.GetWasteTransfers(filter);

        // dump to file
        string topheader = csvformat.CreateHeader(header);
        string rowHeader = csvformat.GetIndustrialActivityWasteTransfersHeader();

        Response.WriteUtf8FileHeader("EPRTR_Industrial_Activity_Waste_Transfer_List");

        Response.Write(topheader + rowHeader);

        foreach (var item in rows)
        {
            string row = csvformat.GetIndustrialActivityWasteTransfersRow(item);
            Response.Write(row);
        }

        Response.End();
    }
    /// <summary>
    /// Save
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            int facilityReportId = (int)ViewState[FACILITY_SPECIAL];
            Dictionary <string, string> header = CsvHeaderBuilder.GetFacilityTrendHeader(facilityReportId, true);

            // Create Body
            List <TimeSeriesClasses.WasteTransfer> data = getTimeSeriesData(FacilityBasic.FacilityID, WasteType);

            // dump to file
            string topheader       = csvformat.CreateHeader(header);
            string pollutantHeader = csvformat.GetWasteTransferTrendHeader();

            Response.WriteUtf8FileHeader("EPRTR_Waste_Transfers_Time_Series");

            Response.Write(topheader + pollutantHeader);
            foreach (var v in data)
            {
                string row = csvformat.GetWasteTransferTrendRow(v);
                Response.Write(row);
            }
            Response.End();
        }
        catch { /*ignore all errors */ }
    }
        public CSVCreator(Stream stream)
            : base(stream)
        {
            if (Stream == Stream.Null)
            {
                Stream = new MemoryStream();
            }

            _formatter = new CSVFormatter();
        }
    /// <summary>
    /// Save
    /// </summary>
    ///
    public void DoSaveCSV(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            FacilitySearchFilter filter    = SearchFilter;
            bool isConfidentialityAffected = Facility.IsAffectedByConfidentiality(filter);

            Dictionary <string, string> header = CsvHeaderBuilder.GetFacilitySearchHeader(
                filter,
                isConfidentialityAffected);

            // Create Body
            List <Facility.FacilityCSV> facilities = Facility.GetFacilityListCSV(filter);

            // dump to file
            string topheader      = csvformat.CreateHeader(header).Replace("E-PRTR", "EPER");
            string facilityHeader = csvformat.GetFacilityHeader();

            string url = Request.Url.AbsoluteUri;
            url = url.Substring(0, url.LastIndexOf("/") + 1);

            Response.WriteUtf8FileHeader("EPER_Facility_List");

            Response.Write(topheader + facilityHeader);

            foreach (var v in facilities)
            {
                // translate codes
                v.ActivityName   = LOVResources.AnnexIActivityName(v.ActivityCode);
                v.CountryName    = LOVResources.CountryName(v.CountryCode);
                v.NutsRegionName = LOVResources.NutsRegionName(v.NutsRegionCode);
                v.RiverBasinName = LOVResources.RiverBasinDistrictName(v.RiverBasinCode);

                v.FacilityName = ConfidentialFormat.Format(v.FacilityName, v.Confidential);
                v.PostalCode   = ConfidentialFormat.Format(v.PostalCode, v.Confidential);
                v.Address      = ConfidentialFormat.Format(v.Address, v.Confidential);
                v.City         = ConfidentialFormat.Format(v.City, v.Confidential);
                v.URL          = String.Format("{0}/PopupFacilityDetails.aspx?FacilityReportId={1}", url, v.FacilityReportID);

                string row = csvformat.GetFacilityRow(v);

                Response.Write(row);
            }

            Response.End();
        }
        catch
        {
        }
    }
示例#10
0
        public void NullValuesShouldBeEmptyStrings()
        {
            var sut    = new CSVFormatter();
            var result = sut.FormatLine(new List <string>
            {
                "value a",
                null,
                "value c"
            });

            result.ShouldBe("value a,,value c");
        }
示例#11
0
        public void LineFeedValuesShouldBeSurroundedWithQuotes()
        {
            var sut    = new CSVFormatter();
            var result = sut.FormatLine(new List <string>
            {
                "value a",
                "value b",
                "value c",
                "value d\rvalue e\rvalue f"
            });

            result.ShouldBe("value a,value b,value c,\"value d\rvalue e\rvalue f\"");
        }
示例#12
0
        public void QuotedValuesShouldBeSurroundedWithQuotes()
        {
            var sut    = new CSVFormatter();
            var result = sut.FormatLine(new List <string>
            {
                "value a",
                "\"value b\"",
                "value\"c",
                "value d"
            });

            result.ShouldBe("value a,\"\"\"value b\"\"\",\"value\"\"c\",value d");
        }
示例#13
0
        public void CommaValuesShouldBeSurroundedWithQuotes()
        {
            var sut    = new CSVFormatter();
            var result = sut.FormatLine(new List <string>
            {
                "value a",
                "value,b",
                "value c",
                "value d"
            });

            result.ShouldBe("value a,\"value,b\",value c,value d");
        }
示例#14
0
        public void NormalValuesShouldBeCommaDelimited()
        {
            var sut    = new CSVFormatter();
            var result = sut.FormatLine(new List <string>
            {
                "value a",
                "value b",
                "value c",
                "value d"
            });

            result.ShouldBe("value a,value b,value c,value d");
        }
        public void ConvertWithoutRulesTest()
        {
            XDocument doc = _doc;
            string    parentElementName = "EndOfDayTradeReportForClient";

            IList <string> expected = new List <string>();

            expected.Add("123456578,Buy,RUT,20,25.5,2013-10-01,Call");
            expected.Add("123456578,Sell,RUT");

            IList <string> actual;

            actual = CSVFormatter.Convert(doc, parentElementName);
            CompareStringLists(expected, actual);
        }
示例#16
0
        public void TestCsv()
        {
            CSVFormatter t          = new CSVFormatter(_dataServiceMock.Object);
            var          dummyItems = DataService.CreateDummyItems();

            _dataServiceMock.Setup(d => d.ReadData()).Returns(dummyItems);

            t.Execute();
            _dataServiceMock.Verify(d => d.OpenConnection(), Times.Once);

            string expectedText = getExpectedFormat();

            _dataServiceMock.Verify(d => d.ExportData(expectedText), Times.Once);
            _dataServiceMock.Verify(d => d.CloseConnection(), Times.Once);
        }
        public void ConvertWithRulesTest()
        {
            XDocument doc = _doc;
            string    parentElementName = "EndOfDayTradeReportForClient";

            IList <string> expected = new List <string>();

            expected.Add("Adar,B,20,RUT,25.50,10/1/2013,C");
            expected.Add(String.Format("Adar,S,,RUT,\"{0}\",,",
                                       String.Format(CSVErrorMessages_Accessor.ErrorMsgElementNotFound, "{http://tempuri.org/ClientReportDataset.xsd}StrikePrice")));

            IList <string> actual;

            actual = CSVFormatter.Convert(doc, parentElementName, _rules);
            CompareStringLists(expected, actual);
        }
        public void EvenTableWithSep()
        {
            Table table = new Table();

            table[1, 1] = 1;
            table[2, 1] = 2;
            table[1, 2] = 3;
            table[2, 2] = 4;

            CSVFormatter sut = new CSVFormatter(table);

            string expected = "sep=;\n1;2\n3;4\n";
            string actual   = sut.GetCSV(table);

            Assert.AreEqual(expected, actual);
        }
    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
        {
        }
    }
        public void EvenTableWithSepAndDifferentDelim()
        {
            Table table = new Table();

            table.ColumnDelimiter = ',';
            table[1, 1]           = 1;
            table[2, 1]           = 2;
            table[1, 2]           = 3;
            table[2, 2]           = 4;

            CSVFormatter sut = new CSVFormatter(table);

            string expected = "sep=,\n1,2\n3,4\n";
            string actual   = sut.GetCSV(table);

            Assert.AreEqual(expected, actual);
        }
示例#21
0
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        var           filter           = SearchFilter;
        int           pollutantGroupID = getPollutantGroupID();
        List <string> pollutantCodes   = getOrderedPollutantCodes();

        MediumFilter.Medium medium = this.ucMediumSelector.SelectedMedium;

        bool isConfidentialityAffected = AreaOverview.IsPollutantReleaseAffectedByConfidentiality(filter, medium, pollutantGroupID);

        Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetAreaoverviewPollutantReleaseSearchHeader(filter, pollutantGroupID, medium, isConfidentialityAffected);

        // Create Body
        List <AreaOverview.AOPollutantTreeListRow> rows = AreaOverview.GetPollutantReleaseActivityTree(filter, medium, pollutantGroupID, pollutantCodes).ToList();

        sortData(rows);

        // dump to file
        string topheader           = csvformat.CreateHeader(header);
        string pollutantinfoHeader = csvformat.GetAreaOverviewPollutantInfoHeader(getOrderedPollutants(filter, medium, pollutantGroupID));
        string rowHeader           = csvformat.GetAreaOverviewPollutantDataHeader(getOrderedPollutants(filter, medium, pollutantGroupID));

        Response.WriteUtf8FileHeader("EPRTR_Areaoverview_PollutantReleases_List");

        Response.Write(topheader + pollutantinfoHeader + rowHeader);


        foreach (var item in rows)
        {
            string row = csvformat.GetAreaOverviewPollutantsRow(item);

            if (AreaOverview.AOPollutantTreeListRow.CODE_TOTAL.Equals(item.Code))
            {
                Response.Write(rowHeader);
            }

            Response.Write(row);
        }


        Response.End();
    }
        public void EvenTableWithNoSep()
        {
            Table table = new Table();

            table.SpecifyColumnDelimiterInFile = false;
            table[1, 1] = 1;
            table[2, 1] = 2;
            table[1, 2] = 3;
            table[2, 2] = 4;

            CSVFormatter sut = new CSVFormatter(table);

            string expected = "1;2\n3;4\n";
            string actual   = sut.GetCSV(table);

            Assert.AreEqual(expected, actual);
        }
示例#23
0
    /// <summary>
    /// Save release data
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Check if current medium is affected confidentiality claims
            bool confidentialityAffected = PollutantReleaseTrend.IsAffectedByConfidentiality(
                SearchFilter,
                CurrentMedium);

            // Create Header
            var header = CsvHeaderBuilder.GetTsPollutantReleasesSearchHeader(SearchFilter,
                                                                             CurrentMedium,
                                                                             confidentialityAffected);

            var data = PollutantReleaseTrend.GetTimeSeries(SearchFilter, CurrentMedium);

            string mediumName    = LOVResources.MediumName(EnumUtil.GetStringValue(CurrentMedium));
            var    pollutant     = ListOfValues.GetPollutant(SearchFilter.PollutantFilter.PollutantID);
            string pollutantName = LOVResources.PollutantName(pollutant.Code);

            // dump to file
            string topheader  = csvformat.CreateHeader(header);
            string rowheaders = csvformat.GetPollutantReleasesTimeSeriesHeader();

            Response.WriteUtf8FileHeader("EPRTR_Pollutant_Releases_Time_Series");

            Response.Write(topheader + rowheaders);

            foreach (var v in data)
            {
                string row = csvformat.GetPollutantReleasesTimeSeriesRow(v, pollutantName, mediumName);
                Response.Write(row);
            }
            Response.End();
        }
        catch
        {
        }
    }
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        var filter = SearchFilter;

        bool isConfidentialityAffected = AreaOverview.IsWasteAffectedByConfidentiality(filter);

        Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetAreaoverviewWasteTransferSearchHeader(filter, isConfidentialityAffected);

        // Create Body
        List <AreaOverview.AOWasteTreeListRow> rows = AreaOverview.GetWasteTransferActivityTree(filter).ToList();

        sortResult(rows);

        // dump to file
        string topheader = csvformat.CreateHeader(header);
        string rowHeader = csvformat.GetAreaOverviewWasteTransferHeader();

        Response.WriteUtf8FileHeader("EPRTR_Areaoverview_WasteTransfers_List");

        Response.Write(topheader + rowHeader);


        foreach (var item in rows)
        {
            string row = csvformat.GetAreaOverviewWasteTransferRow(item);

            if (AreaOverview.AOWasteTreeListRow.CODE_TOTAL.Equals(item.Code))
            {
                Response.Write(Environment.NewLine);
                Response.Write(rowHeader);
            }
            Response.Write(row);
        }



        Response.End();
    }
示例#25
0
    /// <summary>
    /// Save
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // Create Header
            int    facilityReportId = (int)ViewState[FACILITY_REPORTID];
            string pollutantCode    = PollutantCode;

            bool confidentialityAffected       = PollutantReleaseTrend.IsAffectedByConfidentiality(FacilityBasic.FacilityID, PollutantCode, CurrentMedium);
            Dictionary <string, string> header = CsvHeaderBuilder.GetFacilityTrendHeader(facilityReportId, confidentialityAffected);

            // Create Body
            string mediumName    = LOVResources.MediumName(EnumUtil.GetStringValue(CurrentMedium));
            string codeEPER      = pollutantCode + "EPER";
            string pollutantName = LOVResources.PollutantNameEPER(pollutantCode, codeEPER);
            List <TimeSeriesClasses.PollutantReleases> data = getTimeSeriesData(FacilityBasic.FacilityID, CurrentMedium);

            // dump to file
            string topheader       = csvformat.CreateHeader(header);
            string pollutantHeader = csvformat.GetPollutantReleaseTrendHeader();

            Response.WriteUtf8FileHeader("EPRTR_Pollutant_Releases_Time_Series");

            Response.Write(topheader + pollutantHeader);

            foreach (var v in data)
            {
                string row = csvformat.GetPollutantReleaseTrendRow(v, pollutantName, mediumName);
                Response.Write(row);
            }
            Response.End();
        }
        catch
        {
        }
    }
示例#26
0
    /// <summary>
    /// Save waste transfers data
    /// </summary>
    protected void doSave(object sender, EventArgs e)
    {
        try
        {
            CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
            CSVFormatter csvformat  = new CSVFormatter(csvCulture);

            // TODO: Consider moving this value to ViewState
            bool isCurrentWasteTypeAffectedByConfidentiality = WasteTransferTrend.IsAffectedByConfidentiality(SearchFilter, CurrentWasteType);

            // Create Header
            var header = CsvHeaderBuilder.GetTsWasteTransfersSearchHeader(
                SearchFilter,
                CurrentWasteType,
                isCurrentWasteTypeAffectedByConfidentiality);

            var data = WasteTransferTrend.GetTimeSeries(SearchFilter, CurrentWasteType);

            // dump to file
            string topheader  = csvformat.CreateHeader(header);
            string rowheaders = csvformat.GetWasteTransfersTimeSeriesHeader();

            Response.WriteUtf8FileHeader("EPRTR_Waste_Transfers_Time_Series");

            Response.Write(topheader + rowheaders);

            foreach (var v in data)
            {
                string row = csvformat.GetWasteTransfersTimeSeriesRow(v);
                Response.Write(row);
            }
            Response.End();
        }
        catch
        {
        }
    }
    /// <summary>
    /// Save transfers data
    /// </summary>
    public void DoSaveCSV(object sender, EventArgs e)
    {
        CultureInfo  csvCulture = CultureResolver.ResolveCsvCulture(Request);
        CSVFormatter csvformat  = new CSVFormatter(csvCulture);

        // Create Header
        var filter = SearchFilter;

        bool isConfidentialityAffected = WasteTransfers.IsAffectedByConfidentiality(filter);

        Dictionary <string, string> header = EPRTR.HeaderBuilders.CsvHeaderBuilder.GetWasteTransfersSearchHeader(
            filter,
            isConfidentialityAffected);

        // Create Body
        var rows = WasteTransfers.GetActivityTree(filter);

        // dump to file
        string topheader = csvformat.CreateHeader(header);

        string[] colHeaderRows = csvformat.GetWasteTransferActivityColHeaderRows(filter);

        Response.WriteUtf8FileHeader("EPRTR_Waste_Transfers_Activity_List");

        Response.Write(topheader + colHeaderRows[0] + colHeaderRows[1] + colHeaderRows[2]);

        //all rows but total
        foreach (var item in rows.Where(r => r.Code != ActivityTreeListRow.CODE_TOTAL))
        {
            string row = csvformat.GetWasteTransferActivityRow(item, filter);
            Response.Write(row);
        }

        //write total row

        var totalRow = rows.SingleOrDefault(r => r.Code == ActivityTreeListRow.CODE_TOTAL);

        if (totalRow == null)
        {
            //find all rows on topLevel. if only one, use this as total row
            var toplevelRows = rows.Where(r => r.Level == 0);
            if (toplevelRows != null && toplevelRows.Count() == 1)
            {
                totalRow = toplevelRows.Single();
            }
        }

        //write total row if any is found
        if (totalRow != null)
        {
            Response.Write(Environment.NewLine);
            Response.Write(csvformat.AddText(Resources.GetGlobal("Common", "Total")));
            Response.Write(Environment.NewLine);


            string[] totalColHeaderRows = csvformat.GetWasteTransferActivityColHeaderRows(filter);

            Response.Write(totalColHeaderRows[0] + totalColHeaderRows[1]);

            string row = csvformat.GetWasteTransferActivityRow(totalRow, filter);
            Response.Write(row);
        }


        Response.End();
    }
        public void Read()
        {
            Reader         reader         = new Reader(Path.Combine(LocalDirectory, "ExampleFile.csv"));
            LineDataReader lineDataReader = new LineDataReader(reader, Encoding.UTF8);
            CSVFormatter   csvFormatter   = new CSVFormatter(lineDataReader);
            int            lastRowIndex   = 0;

            csvFormatter.Read((rowIndex, columns) =>
            {
                lastRowIndex = rowIndex;
                switch (rowIndex)
                {
                case 0:
                    Assert.AreEqual(columns[0], "NAME");
                    Assert.AreEqual(columns[1], "SURNAME");
                    Assert.AreEqual(columns[2], "OLD");
                    break;

                case 1:
                    Assert.AreEqual(columns[0], "MUHAMMED");
                    Assert.AreEqual(columns[1], "KANDEMIR");
                    Assert.AreEqual(columns[2], "23");
                    break;

                case 2:
                    Assert.AreEqual(columns[0], "HAMZA");
                    Assert.AreEqual(columns[1], "KANDEMIR");
                    Assert.AreEqual(columns[2], "19");
                    break;

                case 3:
                    Assert.AreEqual(columns[0], "MUHAMMED");
                    Assert.AreEqual(columns[1], "KANDEMIR");
                    Assert.AreEqual(columns[2], "2\"3");
                    break;

                case 4:
                    Assert.AreEqual(columns[0], "\"HAMZA");
                    Assert.AreEqual(columns[1], "KAN\"DEMIR");
                    Assert.AreEqual(columns[2], "1\"\"9\"");
                    break;

                case 5:
                    Assert.AreEqual(columns[0], "MUHAMMED");
                    Assert.AreEqual(columns[1], "KANDEMIR");
                    Assert.AreEqual(columns[2], "23");
                    break;

                case 6:
                    Assert.AreEqual(columns[0], "HAMZA");
                    Assert.AreEqual(columns[1], "KAN\"DEMIR");
                    Assert.AreEqual(columns[2], "1\"\"9\"");
                    break;

                default:
                    break;
                }
            });

            Assert.AreEqual(lastRowIndex, 6);
        }