public static ObjectResult ParseResultsToSpeach(PromotionMeeting eventMeeting, ILogger logger, Session session, bool mainCardOnly) { var response = "Here are the " + eventMeeting.Title + " results. "; eventMeeting.FightResults = eventMeeting.FightResults.OrderBy(i => i.FightNumber).ToList(); if (mainCardOnly) { response += " In the main card, "; foreach (var result in eventMeeting.FightResults.Where(i => i.IsMainCard)) { response += "" + result.DecisionSummary + ". "; } } else { response += " In the main card, "; foreach (var result in eventMeeting.FightResults.Where(i => i.IsMainCard)) { response += "" + result.DecisionSummary + ". "; } response += " In the under card, "; foreach (var result in eventMeeting.FightResults.Where(i => !i.IsMainCard)) { response += "" + result.DecisionSummary + ". "; } } response += ". End of results."; return(BuildResponse(response)); }
public static bool UpdatePromotionMeeting(PromotionMeeting promotionMeeting, ref MMADbContext context) { context.Entry(promotionMeeting).State = EntityState.Modified; return(true); }
public static bool AddPromotionMeeting(PromotionMeeting promotionMeeting, ref MMADbContext context) { context.Add(promotionMeeting); return(false); }
/// <summary> /// This method takes the globally available EventResultsContent nodes and iterates over them, in the process attempting /// to create a new PromotionMeeting instance, checking for an existing record, before then creating or updating both the maincard and undercard /// results. To be split up at a future point. /// </summary> private void ProcessEventResults() { var counter = 0; foreach (var node in EventResultsContentNodes.Elements()) { Console.WriteLine("Promotion meeting process entry"); var promotionMeeting = new PromotionMeeting(); if (!(EventDateNodes.Count > counter)) { Console.WriteLine("End of results."); break; } DateTime promotionDate = ProcessTimeNode(EventDateNodes.ElementAt(counter)); promotionMeeting.Title = ProcessEventTitle(EventTitleNodes.ElementAt(counter), out int promotionId); Console.WriteLine("Checking for existing promotion meeting.."); if (MMADataService.DoesPromotionMeetingExist(promotionDate, promotionId, ref DbContext)) { promotionMeeting = MMADataService.GetPromotionMeetingByDate(promotionDate, promotionId, ref DbContext); if (promotionMeeting.FightResults != null) { promotionMeeting.FightResults.Clear(); //update with latest results } else { promotionMeeting.FightResults = new List <FightResult>(); } Console.WriteLine("found.."); } else { Console.WriteLine("new promotion meeting.."); // assign promoiton via id search promotionMeeting.PromotionId = promotionId; promotionMeeting.Date = promotionDate; promotionMeeting.FightResults = new List <FightResult>(); MMADataService.AddPromotionMeeting(promotionMeeting, ref DbContext); MMADataService.SaveChanges(ref DbContext); } Console.WriteLine("Get fight result nodes.."); // get results nodes var fightResultNodes = node.SelectNodes("//div[@class='m-mmaf-pte-event-list__split']"); //[1] mc, [2] uc [3] mc var mainCardNode = new List <HtmlNode>(); var underCardNode = new List <HtmlNode>(); //main card Console.WriteLine("adding main card nodes.."); for (int i = 0; i < fightResultNodes.Count(); i++) { mainCardNode.Add(fightResultNodes[i].Descendants("div").ElementAt(0)); } //under card Console.WriteLine("adding under card nodes.."); for (int i = 0; i < fightResultNodes.Count(); i++) { underCardNode.Add(fightResultNodes[i].Descendants("div").ElementAt(1)); } int fightNumber = 0; if (mainCardNode.Count > counter) { //process maincard foreach (var fightResultNode in mainCardNode[counter].Descendants("li")) { var fightResult = new FightResult(); fightResult.FightNumber = fightNumber; fightResult.PromotionMeeting = promotionMeeting; fightResult.IsMainCard = true; if (ProcessFighterNames(fightResultNode.Descendants("a").FirstOrDefault().InnerHtml, out string[] fighterNames))