예제 #1
0
        public ModelGood Get(int goodId)
        {
            DbMediator database = new DbMediator();
            var        responce = database.GetModelGood(goodId);

            return(responce);
        }
예제 #2
0
        private async Task <bool> Worker()
        {
            bool parsingResult = false;

            for (int i = parserSettings.StartPoint; i <= parserSettings.EndPoint; i++)
            {
                if (!isActive)
                {
                    //OnLinksCompleted?.Invoke(this);
                    return(parsingResult);
                }
                string link = parserSettings.BaseUrl + parserSettings.Prefix.Replace("{CurrentPage}", i.ToString());

                var document = await loader.GetPageSourceByLink(link);

                if (document != null)
                {
                    List <Good> result = parser.ParseLinks(document);

                    var database = new DbMediator();
                    foreach (var good in result)
                    {
                        good.Link = parserSettings.UrlHead + good.Link;
                        document  = await loader.GetPageSourceByLink(good.Link);

                        if (document != null)
                        {
                            List <Good> goodsDb = database.GetGoodsByRef(good.Link);
                            int         goodId;
                            if (goodsDb.Count < 1)
                            {
                                string description = parser.ParseDescription(document);
                                string imgLink     = parser.ParseImageLink(document);
                                good.Description = description;
                                goodId           = database.InsertGood(good);
                                byte[] img = await loader.GetImage(imgLink);

                                Image image = new Image()
                                {
                                    GoodId    = goodId,
                                    ImageLink = imgLink,
                                    Img       = img
                                };
                                database.InsertImage(image);
                            }
                            else
                            {
                                goodId = goodsDb.ToArray()[0].Id;
                            }
                            decimal cost  = parser.ParsePrice(document);
                            Price   price = new Price()
                            {
                                GoodId   = goodId,
                                Cost     = cost,
                                DateTime = System.DateTime.Now
                            };
                            database.InsertPrice(price);
                        }
                    }
                    if (result.Count > 0)
                    {
                        parsingResult = true;
                    }
                }
            }
            isActive = false;
            return(parsingResult);
        }