Пример #1
0
        public ActionResult Iterator(int?id, string URL)
        {
            IteratorSettingsDTO iteratorViewModel = new IteratorSettingsDTO();

            if (id == null)
            {
                return(HttpNotFound());
            }
            else
            {
                var task = parserTaskManager.Get(id.Value);

                if (task.IteratorSettings == null)
                {
                    task.IteratorSettings = new IteratorSettingsDTO();
                    task.IteratorSettings.GoodsIteratorXpathes = new List <string>();
                    task.IteratorSettings.GoodsIteratorXpathes.Add("");
                }
                if (iteratorViewModel.Url == null)
                {
                    iteratorViewModel.Url = URL;
                }
                iteratorViewModel = task.IteratorSettings;

                ViewBag.Id = id;
            }

            ViewBag.Path = TempData["Path"];

            return(View(iteratorViewModel));
        }
Пример #2
0
        public ActionResult IteratorConfigurations(int?id, IteratorSettingsDTO model)
        {
            var _task = parserTaskManager.Get(id.Value);

            _task.IteratorSettings = model;
            parserTaskManager.Update(_task);

            return(RedirectToAction("Grabber", new { id = id.Value }));
        }
Пример #3
0
        /// <summary>
        /// get all urls from page
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public List <string> GetAllUrls(IteratorSettingsDTO model)
        {
            var allUrls = new List <string>();

            try
            {
                int from = model.From;
                int to   = model.To;


                var xpathList = model.GoodsIteratorXpathes;

                string url = model.UrlMask;

                foreach (var xpath in xpathList)
                {
                    List <string> urlFromOnePage = new List <string>();
                    for (int i = from; i <= to; i++)
                    {
                        urlFromOnePage = GetUrlsFromOnePage(url.Replace("{n}", i.ToString()), xpath);
                        if (urlFromOnePage.Count != 0)
                        {
                            allUrls.AddRange(urlFromOnePage);
                            break;
                        }
                        break;
                    }
                    if (urlFromOnePage.Count != 0)
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
            return(allUrls);
        }