Exemplo n.º 1
0
        static async Task Main(string[] args)
        {
            TcmbCurrencyDataService tcmbCurrencyDataService = new TcmbCurrencyDataService(new TcmbDownloader());

            List <TcmbCurrencyData> tcmbCurrencyDataForCsvExport1 = await tcmbCurrencyDataService.GetCurrencyData();

            List <TcmbCurrencyData> tcmbCurrencyDataForCsvExport2 = await tcmbCurrencyDataService.GetCurrencyData();

            CsvExporter csvExporter  = new CsvExporter(new SortByNameStrategy());
            CsvExporter csvExporter2 = new CsvExporter(new DefaultSortingStrategy());
            string      csvAsString  = csvExporter.Export(tcmbCurrencyDataForCsvExport1);
            string      csvAsString2 = csvExporter2.Export(tcmbCurrencyDataForCsvExport2);

            List <TcmbCurrencyData> tcmbCurrencyDataForXmlExport1 = await tcmbCurrencyDataService.GetCurrencyData();

            List <TcmbCurrencyData> tcmbCurrencyDataForXmlExport2 = await tcmbCurrencyDataService.GetCurrencyData();

            XmlExporter xmlExporter  = new XmlExporter(new SortByNameStrategy());
            XmlExporter xmlExporter2 = new XmlExporter(new SortByForexSelling());
            string      xmlAsString  = xmlExporter.Export(tcmbCurrencyDataForXmlExport1);
            string      xmlAsString2 = xmlExporter2.Export(tcmbCurrencyDataForXmlExport2);

            Sorter sorter = new Sorter();

            List <TcmbCurrencyData> tcmbCurrencyData = await tcmbCurrencyDataService.GetCurrencyData();

            List <TcmbCurrencyData> tcmbCurrencyData1 = sorter.SortByBanknoteBuying(tcmbCurrencyData);

            Console.WriteLine("Data sorted by BanknoteBuying property are shown below (Ascending):\n");
            foreach (var item in tcmbCurrencyData1)
            {
                if (item.BanknoteBuying.HasValue)
                {
                    Console.WriteLine(item.BanknoteBuying);
                }
            }

            List <TcmbCurrencyData> tcmbCurrencyData2 = sorter.SortByBanknoteBuyingDescending(tcmbCurrencyData);

            Console.WriteLine("\nData sorted by BanknoteBuying property are shown below (Descending):\n");
            foreach (var item in tcmbCurrencyData2)
            {
                if (item.BanknoteBuying.HasValue)
                {
                    Console.WriteLine(item.BanknoteBuying);
                }
            }

            List <TcmbCurrencyData> tcmbCurrencyData3 = tcmbCurrencyData.FilterByCode("USD");

            Console.WriteLine("\nData filtered by CurrencyCode property with the text 'USD' and sorted by CrossOrder property are shown below (Ascending):\n");
            foreach (var item in tcmbCurrencyData3)
            {
                if (item.BanknoteBuying.HasValue)
                {
                    Console.WriteLine(item.BanknoteBuying);
                }
            }

            List <TcmbCurrencyData> tcmbCurrencyData4 = tcmbCurrencyData.ExcludeNullCrossRateUsd();

            Console.WriteLine("\nData filtered by excluding null CrossRateUsd property and sorted by CrossOrder property are shown below (Ascending):\n");
            foreach (var item in tcmbCurrencyData4)
            {
                if (item.BanknoteBuying.HasValue)
                {
                    Console.WriteLine(item.BanknoteBuying);
                }
            }
        }