Exemplo n.º 1
0
        private static PatternDistributionStatus GetStatus(IElement root, PatternPrice patternPrice)
        {
            // Status
            var status = PatternDistributionStatus.Undefined;

            if (patternPrice.HasDiscount)
            {
                status = PatternDistributionStatus.OnSale;
            }
            else if (patternPrice.HasPrice)
            {
                status = PatternDistributionStatus.AvailableToBuy;
            }
            else
            {
                var comment = root.QuerySelector("div.free_text");
                if (comment != null)
                {
                    status = comment.TextContent != null && comment.TextContent.ToLowerInvariant().Contains("бесплатно")
                        ? PatternDistributionStatus.FreeToDownload
                        : PatternDistributionStatus.AuthorRequestOnly;
                }
            }

            return(status);
        }
Exemplo n.º 2
0
        private static PatternPrice GetPriceInfo(IElement root)
        {
            // Price
            var patternPrice   = new PatternPrice();
            var priceContainer = root.QuerySelector("div.cart_button");

            if (priceContainer != null)
            {
                decimal price;
                decimal discountPrice     = 0;
                var     discountContainer = priceContainer.QuerySelector("span.action");
                if (discountContainer != null)
                {
                    decimal.TryParse(discountContainer.TextContent, out price);
                    decimal.TryParse(priceContainer.QuerySelector("span.pat_cost")?.TextContent, out discountPrice);
                }
                else
                {
                    decimal.TryParse(priceContainer.QuerySelector("span.pat_cost")?.TextContent, out price);
                }
                patternPrice.Price         = price;
                patternPrice.DiscountPrice = discountPrice;
            }
            return(patternPrice);
        }
Exemplo n.º 3
0
        public static CrossStitchPatternModel Parse(IElement root, Uri uri)
        {
            var                       model        = new CrossStitchPatternModel();
            var                       id           = GetId(root, uri);
            ItemImage                 image        = GetImageInfo(root, uri);
            PatternAuthor             author       = GetAuthorInfo(root, id.ToString());
            PatternInfo               patternInfo  = GetPatternDescriptionInfo(root);
            PatternPrice              patternPrice = GetPriceInfo(root);
            PatternDistributionStatus status       = GetStatus(root, patternPrice);

            //
            model.PatternId = id;
            model.Image     = image;
            model.Author    = author;
            model.Info      = patternInfo;
            model.PriceInfo = patternPrice;
            model.Status    = status;
            return(model);
        }