Exemple #1
0
        private static async Task Propriu()
        {
            var v    = new Verifier();
            var dt   = new ReceiverXML(@"C:\Users\Surface1\Downloads\blogpropriu.wordpress.2018-10-06.xml", Encoding.UTF8, @"//item/category[@nicename=""carti-5-stele""]/..");
            var data = await dt.TransformData(null);

            await v.TransformData(data);

            data = await new TransformerXMLToColumn("OuterXML", "//title", "title", ",").TransformData(data);
            await v.TransformData(data);

            data = await new TransformerXMLToColumn("OuterXML", "//category", "category", ",").TransformData(data);
            await v.TransformData(data);

            data = await new TransformerXMLToColumn("OuterXML", @"//*[name()=""content:encoded""]", "content", ",").TransformData(data);
            await v.TransformData(data);

            data = await  new TransformerOneTableToMulti <TransformerHtmlAHref>("Content", "content", new CtorDictionary()).TransformData(data);

            await v.TransformData(data);

            data = await new FilterTablesWithColumn("href").TransformData(data);

            await v.TransformData(data);

            data = await new TransformerToOneTable().TransformData(data);

            await v.TransformData(data);

            data = await new FilterRetainColumnDataContains("href", "amazon").TransformData(data);
            //await v.TransformData(data);
            //data = await new RetainColumnDataContains("a_text", "Lord of Light").TransformData(data);
            await v.TransformData(data);

            data = await new TransformerOneTableToMulti <AmazonMeta>("file", "href", new CtorDictionary()).TransformData(data);
            await v.TransformData(data);

            data = await new FilterTablesWithColumn("meta_content").TransformData(data);
            await v.TransformData(data);

            data = await new TransformerToOneTable().TransformData(data);
            await v.TransformData(data);

            var excel = new SenderExcel(@"andrei.xslx");

            data = await excel.TransformData(data);

            data = await v.TransformData(data);
        }
        public void TestReceiverSimpleBNR(string fileName, int NumberRows)
        {
            IReceive    receiver = null;
            IDataToSent data     = null;

            $"Given the file {fileName} ".w(() =>
            {
                File.Exists(fileName).Should().BeTrue();
            });
            $"When I create the r{nameof(ReceiverXML)} for the {fileName}".w(() => receiver = new ReceiverXML(fileName, null, "//*[name()='Rate']"));

            $"And I read the data".w(async() => data = await receiver.TransformData(null));
            $"Then should be a data".w(() => data.Should().NotBeNull());
            $"With a table".w(() =>
            {
                data.DataToBeSentFurther.Should().NotBeNull();
                data.DataToBeSentFurther.Count.Should().Be(1);
            });
            $"The number of rows should be {NumberRows}".w(() => data.DataToBeSentFurther[0].Rows.Count.Should().Be(NumberRows));
        }
        public void TestTransformerToColumns(string fileName, int NumberRows, string currencyName, string ValueName, string valueEur)
        {
            IReceive    receiver = null;
            IDataToSent data     = null;

            $"Given the file {fileName} ".w(() =>
            {
                File.Exists(fileName).Should().BeTrue();
            });
            $"When I create the {nameof(ReceiverXML)} for the {fileName}".w(() => receiver = new ReceiverXML(fileName, null, "//*[name()='Rate']"));

            $"And I read the data".w(async() => data = await receiver.TransformData(null));
            $"Then should be a data".w(() => data.Should().NotBeNull());
            $"With a table".w(() =>
            {
                data.DataToBeSentFurther.Should().NotBeNull();
                data.DataToBeSentFurther.Count.Should().Be(1);
            });
            $"The number of rows should be {NumberRows}".w(() => data.DataToBeSentFurther[0].Rows.Count.Should().Be(NumberRows));
            $"And I transform  the data with {nameof(TransformerXMLToColumn)} for {currencyName}".w(async
                                                                                                        () => data = await new TransformerXMLToColumn("OuterXML", $"//@{currencyName}", currencyName, ",").TransformData(data));

            $"the table should contain {nameof(currencyName)}".w(() =>
                                                                 data.Metadata.Columns.FirstOrDefault(it => it.Name == currencyName).Should().NotBeNull());


            $"the table should contain {nameof(ValueName)}".w(() =>
                                                              data.Metadata.Columns.FirstOrDefault(it => it.Name == ValueName).Should().NotBeNull());

            $"and the data should contain for EUR {nameof(valueEur)}".w(() =>
            {
                DataView dv  = new DataView(data.DataToBeSentFurther[0]);
                dv.RowFilter = $"{currencyName}='EUR'";
                dv.Count.Should().Be(1);
                var row = dv[0].Row;
                row[ValueName].ToString().Should().Be(valueEur);
            });
        }