public void Create_description_for_item_due_over_a_week_ago() { var generator = new AtomFeedGenerator(); var fixture = new Fixture(); var userFeed = fixture.Create <UserFeed>(); var items = fixture.CreateMany <UserItem>(14); var dueDate = DateTime.Today.AddDays(-7); foreach (var item in items) { item.PostponedUntilDate = null; item.NextDueDate = dueDate; dueDate = dueDate.AddDays(-1); } var atomDoc = generator.GenerateFeed("https://smalllister.nosuchblogger.com", DateTime.UtcNow, items, userFeed); atomDoc.Should().NotBeNull(); var atomXmlString = atomDoc.ToXmlString(); Console.WriteLine(atomXmlString); atomXmlString.Should().Contain($"<id>https://smalllister.nosuchblogger.com/feed/{userFeed.UserFeedIdentifier}</id>"); dueDate = DateTime.Today.AddDays(-7); foreach (var item in items) { atomXmlString.Should().Contain($"You have an overdue item! It was due on {dueDate.ToString("d MMM yyyy")}"); dueDate = dueDate.AddDays(-1); } }
public static async Task GenerateFeed() { using (var service = new FlightService()) { var flights = await service.GetFlightsForAtom(50); var items = flights.Select(x => new AtomFeedItem() { Id = Guid.Parse(Md5(x.LogNumber)), Link = new Uri("http://services.sled.sc.gov/Aviation/CopViewPublic2.aspx?LOGID=" + x.LogNumber), Summary = BuildDescription(x), Title = "SLED Helicopter Flight " + x.LogNumber, LastUpdated = x.CompletedAt, AuthorName = "South Carolina Law Enforcement Division", Category = $"Aircraft N{x.Aircraft}", }).ToList(); var f = new AtomFeed() { AuthorName = "South Carolina Law Enforcement Division", Id = Guid.Parse("EFF7C905-20B3-49B7-9503-D67E181289A2"), LastUpdated = DateTimeOffset.UtcNow, Link = new Uri("http://www.sled.sc.gov"), //LinkSelf = new Uri("http://www.sled.sc.gov"), Title = "South Carolina Law Enforcement Division Helicopter Flight Log", Items = items }; var feed = AtomFeedGenerator.GenerateFeed(f); await UploadFile("flights.xml", feed, "text/xml"); } }
public void Create_description_for_item_due_in_the_last_week() { var generator = new AtomFeedGenerator(); var fixture = new Fixture(); var userFeed = fixture.Create <UserFeed>(); var items = fixture.CreateMany <UserItem>(5); // will be "last <Day of week>" up to 6 days ago, except for yesterday which is a special case var dueDate = DateTime.Today.AddDays(-2); foreach (var item in items) { item.PostponedUntilDate = null; item.NextDueDate = dueDate; dueDate = dueDate.AddDays(-1); } var atomDoc = generator.GenerateFeed("https://smalllister.nosuchblogger.com", DateTime.UtcNow, items, userFeed); atomDoc.Should().NotBeNull(); var atomXmlString = atomDoc.ToXmlString(); Console.WriteLine(atomXmlString); atomXmlString.Should().Contain($"<id>https://smalllister.nosuchblogger.com/feed/{userFeed.UserFeedIdentifier}</id>"); dueDate = DateTime.Today.AddDays(-2); foreach (var item in items) { atomXmlString.Should().Contain($"You have an overdue item! It was due last {dueDate.ToString("dddd")}"); dueDate = dueDate.AddDays(-1); } }
public void Generate_empty_feed() { var generator = new AtomFeedGenerator(); var atomDoc = generator.GenerateFeed("https://smalllister.nosuchblogger.com", DateTime.UtcNow, new List <UserItem>(), new UserFeed { UserFeedIdentifier = "mytestfeed" }); atomDoc.Should().NotBeNull(); var atomXmlString = atomDoc.ToXmlString(); Console.WriteLine(atomXmlString); atomXmlString.Should().Contain("<id>https://smalllister.nosuchblogger.com/feed/mytestfeed</id>"); atomXmlString.Should().NotContain("<entry>"); }
public void Generate_feed_entries() { var generator = new AtomFeedGenerator(); var fixture = new Fixture(); var userFeed = fixture.Create <UserFeed>(); userFeed.ItemDisplay = UserFeedItemDisplay.Description; var items = fixture.Build <UserItem>().CreateMany(); var atomDoc = generator.GenerateFeed("https://smalllister.nosuchblogger.com", DateTime.UtcNow, items, userFeed); atomDoc.Should().NotBeNull(); var atomXmlString = atomDoc.ToXmlString(); Console.WriteLine(atomXmlString); atomXmlString.Should().Contain($"<id>https://smalllister.nosuchblogger.com/feed/{userFeed.UserFeedIdentifier}</id>"); atomXmlString.Should().Contain("<entry>"); }
public void Create_description_for_item_postponed_until_yesterday() { var generator = new AtomFeedGenerator(); var fixture = new Fixture(); var userFeed = fixture.Create <UserFeed>(); var item = fixture.Create <UserItem>(); item.PostponedUntilDate = DateTime.Today.AddDays(-1); item.NextDueDate = DateTime.Today.AddDays(-10); var atomDoc = generator.GenerateFeed("https://smalllister.nosuchblogger.com", DateTime.UtcNow, new[] { item }, userFeed); atomDoc.Should().NotBeNull(); var atomXmlString = atomDoc.ToXmlString(); Console.WriteLine(atomXmlString); atomXmlString.Should().Contain($"<id>https://smalllister.nosuchblogger.com/feed/{userFeed.UserFeedIdentifier}</id>"); atomXmlString.Should().Contain("You have an overdue item! It was due yesterday"); }
public static async Task RunSupreme() { var proxyHost = ConfigurationManager.AppSettings["Proxy.Host"]; var proxyPort = ConfigurationManager.AppSettings["Proxy.Port"]; var proxyUser = ConfigurationManager.AppSettings["Proxy.User"]; var proxyPass = ConfigurationManager.AppSettings["Proxy.Pass"]; var client = new SupremeCourt(proxyHost, Convert.ToInt32(proxyPort), proxyUser, proxyPass); var opinions = await client.GetOpinions(); Console.WriteLine("Got {0} opinions for Supreme.", opinions.Count); var items = opinions.Select(x => new AtomFeedItem() { Id = Guid.Parse(x.Type == "order" ? Md5(x.Url) : Md5(x.Id)), Link = new Uri(x.Url), Summary = x.Description, Title = x.Title, LastUpdated = x.Date, AuthorName = "Supreme Court of South Carolina", Category = x.Type, }).ToList(); var f = new AtomFeed() { AuthorName = "Supreme Court of South Carolina", Id = Guid.Parse("062c1964-e9f2-ca37-8c51-6f4ed3e0cee1"), LastUpdated = DateTimeOffset.UtcNow, Link = new Uri("http://www.sccourts.org/opinions/indexCOAPub.cfm"), //LinkSelf = new Uri("http://www.sccourts.org/opinions/indexCOAPub.cfm"), Title = "South Carolina Supreme Court Published Opinions", Items = items }; var feed = AtomFeedGenerator.GenerateFeed(f); await UploadFile("supreme.xml", feed, "text/xml"); }