Beispiel #1
0
        public IEnumerable<Moneta> GetPage(string page)
        {
            var qq = new Queue<Moneta>();
            var pagenum = 0;
            int.TryParse(page, out pagenum);
            var html = Helper.GetHtmlAsync(Constant.GetParentUrl(pagenum));
            var table = Helper.GetSingleTag(html.Result, "table", "class", "adsmanager_table");

            if (table != null)
                foreach (var tr in table.Descendants("tr"))
                {

                    var tdAdsmanager = Helper.GetSingleNodeTag(tr, "td", "class", "adsmanager_table_description");
                    var tdCenter = Helper.GetSingleNodeTag(tr, "td", "class", "center");

                    if (tdAdsmanager != null && tdCenter != null)
                    {
                        var regexCreateIn = Regex.Match(tdCenter.InnerHtml, Constant.RegexCreateDate,
                            RegexOptions.IgnoreCase | RegexOptions.Compiled);
                        var regexCount = Regex.Match(tdCenter.InnerHtml, Constant.RegexViewsCount,
                            RegexOptions.IgnoreCase | RegexOptions.Compiled);
                        var regexId = Regex.Match(tdAdsmanager.InnerHtml, Constant.RegexGetItemId,
                            RegexOptions.IgnoreCase | RegexOptions.Compiled);
                        var regexCatId = Regex.Match(tdAdsmanager.InnerHtml, Constant.RegexGetItemCatId,
                            RegexOptions.IgnoreCase | RegexOptions.Compiled);

                        if (!regexId.Success || !regexCatId.Success || !regexCreateIn.Success || !regexCount.Success)
                            continue;

                        var id = int.Parse(regexId.Groups[1].Value);
                        var catId = int.Parse(regexCatId.Groups[1].Value);
                        var date = DateTime.ParseExact(regexCreateIn.Value, "dd.MM.yyyy",CultureInfo.InvariantCulture);
                        var countViews = Helper.IntParce(regexCount.Groups[1].Value);
                        qq.Enqueue(GetItem(catId, id, date, countViews));
                    }
                }

            return qq.ToList();
        }
        public void MakeTableAndTree()
        {
			Queue<Symbol> currentQueue = new Queue<Symbol>();
            Ensemble.OrderBy(o => o.Frequency).ToList().ForEach(p => currentQueue.Enqueue(p));
            ProbabilityTable.Add(currentQueue.ToList());
            while (currentQueue.Count > 1)
            {
                var newNode = new Symbol(currentQueue.Dequeue(), currentQueue.Dequeue());
                var temporaryQueue = currentQueue.ToList();
                if (currentQueue.Count == 0)
                {
                    currentQueue.Enqueue(newNode);
                }
                else
                {
                    int index = 0;
                    currentQueue.ToList().ForEach(p =>
                    {
                        if (newNode.Frequency <= p.Frequency)
                        {
                            index = currentQueue.ToList().IndexOf(p);
                        }
                        else
                        {
                            index++;
                        }
                    });
                    temporaryQueue.Insert(index, newNode);
                    currentQueue.Clear();
                    temporaryQueue.ForEach(p => currentQueue.Enqueue(p));
                }
                ProbabilityTable.Add(currentQueue.ToList());
            }
        }