private static async Task GetLatest(bool rebuildTable) { if (rebuildTable) { List <Service> onlineServiceList = await HtmlHelper.ParseAwsServices("https://aws.amazon.com/products/"); List <Service> master = ServiceListHelper.OrderServiceListByShortName(onlineServiceList); await DynamoHelper.RebuildTable(master); List <Service> serviceList = await DynamoHelper.QueryTable(); List <Tags> tagList = await HtmlHelper.ParseBlogTags("https://msimpson.co.nz/tags/aws/"); List <TableEntry> tableList = MarkdownHelper.BuildTable(serviceList, tagList); MarkdownHelper.BuildMarkdown(tableList); } else { List <Service> serviceList = await DynamoHelper.QueryTable(); List <Tags> tagList = await HtmlHelper.ParseBlogTags("https://msimpson.co.nz/tags/aws/"); List <TableEntry> tableList = MarkdownHelper.BuildTable(serviceList, tagList); MarkdownHelper.BuildMarkdown(tableList); } }
public async Task IntegrationTest() { List <Service> onlineServiceList = await HtmlHelper.ParseAwsServices("https://aws.amazon.com/products/"); System.Console.WriteLine($"Query online list: {onlineServiceList.Count()}"); List <Service> masterServiceList = await DynamoHelper.QueryTable(); List <Service> orderedOnlineServiceList = ServiceListHelper.OrderServiceListById(onlineServiceList); List <Service> orderedMasterServiceList = ServiceListHelper.OrderServiceListById(masterServiceList); List <string> masterListId = orderedMasterServiceList.Select(x => x.id).ToList(); List <string> onlineListId = orderedOnlineServiceList.Select(x => x.id).ToList(); List <string> updateList = onlineListId.Except(masterListId).ToList(); List <string> removeList = masterListId.Except(onlineListId).ToList(); System.Console.WriteLine(); }
public static List <SendMessageRequest> GenerateNotification(List <Service> onlineServiceList, List <Service> masterServiceList, string queueUrl) { List <Service> orderedOnlineServiceList = ServiceListHelper.OrderServiceListById(onlineServiceList); List <Service> orderedMasterServiceList = ServiceListHelper.OrderServiceListById(masterServiceList); List <string> masterListId = orderedMasterServiceList.Select(x => x.id).ToList(); List <string> onlineListId = orderedOnlineServiceList.Select(x => x.id).ToList(); List <string> updateList = onlineListId.Except(masterListId).ToList(); List <string> removeList = masterListId.Except(onlineListId).ToList(); List <SendMessageRequest> messageList = new List <SendMessageRequest>(); if (updateList.Count == 0 && removeList.Count == 0) { var request = BuildMessage("no-update", "no-update", queueUrl); messageList.Add(request); } else { if (updateList.Count > 0) { foreach (var svc in updateList) { var messageBody = JsonConvert.SerializeObject(orderedOnlineServiceList.Where(x => x.id == svc).FirstOrDefault()); var request = BuildMessage("service-added", messageBody, queueUrl); messageList.Add(request); } } if (removeList.Count > 0) { foreach (var svc in removeList) { var messageBody = JsonConvert.SerializeObject(orderedMasterServiceList.Where(x => x.id == svc).FirstOrDefault()); var request = BuildMessage("service-changed", messageBody, queueUrl); messageList.Add(request); } } } return(messageList); }