Example #1
0
        public async Task CheckComplOrders()
        {
            var deleted = new List <Seller>();

            foreach (Seller seller in Sellers)
            {
                if (await seller.IsCpmplited())
                {
                    deleted.Add(seller);
                    Complited.Add(seller);
                }
            }
            foreach (Seller seller in deleted)
            {
                Sellers.Remove(seller);
            }
            if (await Buyer.IsComplited())
            {
                var complitedOrder = Buyer.PopComplited();
                if (complitedOrder != null)
                {
                    Sellers.Add(new Seller(complitedOrder, Tracker.Sett.Delta, _market.Api));
                }
            }
        }
Example #2
0
        void GetData()
        {
            mWebClient = new WebClient();
            Uri url = new Uri(string.Format("https://geocode-maps.yandex.ru/1.x/?format=json&results=1&geocode={0}", Address));

            try
            {
                string  stringResult = mWebClient.DownloadString(url);
                JObject jsonResult   = JObject.Parse(stringResult);
                var     pos          = jsonResult["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"].Value <string>();
                var     lowerCorner  = jsonResult["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["boundedBy"]["Envelope"]["lowerCorner"].Value <string>();
                var     upperCorner  = jsonResult["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["boundedBy"]["Envelope"]["upperCorner"].Value <string>();

                if (pos == null)
                {
                    return;
                }

                Pos         = GetLatLng(pos);
                LowerCorner = GetLatLng(lowerCorner);
                UpperCorner = GetLatLng(upperCorner);

                Complited?.Invoke(Pos, LowerCorner, UpperCorner);
            }
            catch (Exception e)
            {
                Error?.Invoke(e);
            }
        }
Example #3
0
        private async void Extract()
        {
            if (Parser == null || Settings == null)
            {
                IsRun = false;
                return;
            }

            for (int i = Settings.StartPage; i <= Settings.EndPage; i++)
            {
                if (IsRun)                                        //проверяем активность парсера
                {
                    string source = await _loader.GetHtmlCode(i); //Получаем код страницы

                    HtmlParser    htmlParser = new HtmlParser();
                    IHtmlDocument document   = await htmlParser.ParseDocumentAsync(source);

                    Data.AddRange(Parser.Parse(document)); // сохраняем полученные данные
                    NewData?.Invoke(this, Data.ToArray()); // возвращаем полученные за итерацию данные
                }
            }
            Complited?.Invoke(this); // событие отвечающее за информирование о завершении парсинга
            IsRun = false;
        }