Exemple #1
0
 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;

                }
            }

        }
Exemple #3
0
        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;*/
        }