private static async Task BillGates() { var v = new Verifier(); //var dt = new ReceiverHtmlAHref(@"https://www.gatesnotes.com/Books#All",Encoding.UTF8); //var dt = new ReceiverHtmlRegex(@"C:\Users\Surface1\Documents\bg.txt", Encoding.UTF8, @".(?:href=)(?<book>.+?)(?:#disqus).*?"); var dt = new ReceiverHtmlRegex(@"C:\Users\Surface1\Documents\bg.txt", Encoding.UTF8, @".(?:href=\\"")(?<book>.+?)(?:#disqus).*?"); var data = await dt.TransformData(null); await v.TransformData(data); var books = new FilterRetainColumnDataContains(data.Metadata.Columns[0].Name, "ooks"); data = await books.TransformData(data); await v.TransformData(data); var t = new TransformerOneTableToMulti <ReceiverHtmlMeta>("file", data.Metadata.Columns[0].Name, new CtorDictionary()); data = await t.TransformData(data); await v.TransformData(data); data = await new FilterTablesWithColumn("meta_name").TransformData(data); await v.TransformData(data); data = await new FilterTablesWithColumn("meta_name").TransformData(data); await v.TransformData(data); data = await new TransformerToOneTable().TransformData(data); await v.TransformData(data); books = new FilterRetainColumnDataContains("meta_name", "keywords"); data = await books.TransformData(data); await v.TransformData(data); var excel = new SenderExcel(@"bg.xslx"); data = await excel.TransformData(data); data = await v.TransformData(data); }
[Example(@"Assets/bg.html", @"\b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})", 3, 1)]//https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.getgroupnames?view=netframework-4.7.2 public void TestSimple(string fileName, string regEx, int numberCols, int numberRows) { IReceive receiver = null; var nl = Environment.NewLine; IDataToSent data = null; $"Given the file {fileName} ".w(() => { File.Exists(fileName).Should().BeTrue(); }); $"When I create the ReceiverHtmlRegex for the {fileName}".w(() => receiver = new ReceiverHtmlRegex(fileName, Encoding.UTF8, regEx)); $"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 cols should be {numberCols}".w(() => data.DataToBeSentFurther[0].Columns.Count.Should().Be(numberCols)); $"The number of rows should be {numberRows}".w(() => data.DataToBeSentFurther[0].Rows.Count.Should().Be(numberRows)); }