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); }
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); }
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); }