public async Task <IActionResult> GetRecommendations([FromBody] Recom recom) { try { return(Ok(await _repo.GetRecommendationsAsync(recom))); } catch (Exception e) { return(StatusCode(500, e)); } }
private void htmlDocComplete(object sender, HtmlDocumentLoadCompleted e) { if (e.Error == null) { HtmlDocument htmlDoc = e.Document; if (htmlDoc != null) { HtmlNode node = htmlDoc.GetElementbyId("headline_block"); //IEnumerable<HtmlNode> nodeList =htmlDoc.DocumentNode.Descendants("a"); HtmlNode hn = HtmlNode.CreateNode(node.OuterHtml); IEnumerable<HtmlNode> nodeList=hn.Descendants("a"); List<Recom> listContent = new List<Recom>(); foreach (HtmlNode item in nodeList) { //MessageBox.Show("out--------"+item.InnerHtml); //MessageBox.Show("out--------" + item.InnerText); string title = item.InnerText; if(title==null||title.Length<2) continue; string recomTitle = title; //MessageBox.Show("out--------" + title); string titlelnk = item.GetAttributeValue("href", ""); //MessageBox.Show("titlelnk--------" + titlelnk); Recom recom = new Recom(); recom.recomTitle = recomTitle; recom.titleLink = titlelnk; listContent.Add(recom); } this.listBox1.ItemsSource = listContent; } } }
public async Task <List <ItemDto> > GetRecommendationsAsync(Recom recom) { if (recom.UserItems.Count > 0) { List <Order> allOrders = _context.Orders.ToList(); Dictionary <Guid, int> ITEMS = new Dictionary <Guid, int>(); foreach (Order order in allOrders) { List <UserItem> userItems = UserItemConverter.Convert(await GetUserItemsByOrderAsync(order.Id)); bool flag = true; foreach (UserItem myUserItem in recom.UserItems) { if (userItems.FirstOrDefault(x => x.ItemId == myUserItem.ItemId) == null) { flag = false; } } //UserItem tekush = userItems.FirstOrDefault(x => x.ItemId == recom.ItemId); if (flag == true) { foreach (UserItem userItem in userItems) { if (recom.UserItems.FirstOrDefault(x => x.ItemId == userItem.ItemId) == null && ITEMS.ContainsKey(userItem.ItemId) == false) { ITEMS.Add(userItem.ItemId, 1); } else if (recom.UserItems.FirstOrDefault(x => x.ItemId == userItem.ItemId) == null && ITEMS.ContainsKey(userItem.ItemId) == true) { ITEMS[userItem.ItemId]++; } } } } var myList = ITEMS.ToList(); myList.Sort((pair1, pair2) => pair1.Value.CompareTo(pair2.Value)); myList.Reverse(); List <ItemDto> ItemsResult = new List <ItemDto>(); foreach (var kvp in myList) { ItemsResult.Add(await _item.GetByIdAsync(kvp.Key)); } return(ItemsResult); } return(null); /*List<UserDto> users = (await GetUsersByItemAsync(recom.ItemId)).FindAll(x => x.Id != recom.UserId); * Dictionary<Guid, int> ITEMS = new Dictionary<Guid, int>(); * List<ItemDto> MyItems = await GetItemsByUserAsync(recom.UserId); * * foreach (UserDto user in users) * { * List<ItemDto> items = await GetItemsByUserAsync(user.Id); * Dictionary<Guid, int> IT = new Dictionary<Guid, int>(); * foreach (ItemDto item in items) * { * if (item.Id != recom.ItemId && MyItems.FirstOrDefault(x => x.Id == item.Id) == null) { * if (ITEMS.ContainsKey(item.Id) == false && IT.ContainsKey(item.Id) == false) * { * ITEMS.Add(item.Id, 1); * IT.Add(item.Id, 1); * } * else if (ITEMS.ContainsKey(item.Id) == true && IT.ContainsKey(item.Id) == false) * { * IT.Add(item.Id, 1); * ITEMS[item.Id]++; * } * } * } * }* * var myList = ITEMS.ToList(); * myList.Sort((pair1, pair2) => pair1.Value.CompareTo(pair2.Value)); * myList.Reverse(); * * List<ItemDto> ItemsResult = new List<ItemDto>(); * foreach (var kvp in myList) * { * ItemsResult.Add(await _item.GetByIdAsync(kvp.Key)); * } * return ItemsResult;*/ }