コード例 #1
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);
        }
コード例 #2
0
        private static PatternAuthor GetAuthorInfo(IElement root, string id)
        {
            // Author
            var author          = new PatternAuthor();
            var authorContainer = root.QuerySelector("div.set__title");

            if (authorContainer != null)
            {
                author.ProfileLink = authorContainer.QuerySelector("a")?.GetAttribute("href");
                var authorName = authorContainer.TextContent;
                if (!string.IsNullOrEmpty(authorName))
                {
                    authorName = authorName.Replace(id, string.Empty).Trim(' ', '#', '\xA0');
                }
                author.Name = authorName;
            }

            return(author);
        }
コード例 #3
0
        private void AddKits()
        {
            _dbContext.PatternAuthors.Load();
            _dbContext.KitManufacturers.Load();
            _dbContext.ThreadManufacturers.Load();
            _dbContext.Fabrics.Load();
            _dbContext.FabricItems.Load();
            var dtoKits = new List <Kit>();

            foreach (var seedKit in _kits.Skip(1))
            {
                var dto = new Kit((_lazyLoader));
                dto.Title = seedKit.Title;
                var author = _dbContext.PatternAuthors.Local.FirstOrDefault(a => a.Name == seedKit.Author);
                if (author == null && !string.IsNullOrEmpty(seedKit.Author))
                {
                    author = new PatternAuthor((_lazyLoader))
                    {
                        Name = seedKit.Author
                    };
                    _dbContext.PatternAuthors.Add(author);
                }
                dto.Author      = author;
                dto.ColorsCount = seedKit.ColorsCount;
                dto.Item        = seedKit.Item;
                var manufacturer = _dbContext.KitManufacturers.Local.FirstOrDefault(a => a.Name.ToLowerInvariant() == seedKit.Manufacturer.ToLowerInvariant());
                if (manufacturer == null)
                {
                    manufacturer = new KitManufacturer((_lazyLoader))
                    {
                        Name = seedKit.Manufacturer
                    };
                    _dbContext.KitManufacturers.Add(manufacturer);
                }
                dto.Manufacturer   = manufacturer;
                dto.Image          = seedKit.Image;
                dto.Link           = seedKit.Link;
                dto.WidthSm        = seedKit.WidthSm;
                dto.HeightSm       = seedKit.HeightSm;
                dto.WidthStitches  = seedKit.WidthStitches;
                dto.HeightStitches = seedKit.HeightStitches;
                var threadManufacturer = _dbContext.ThreadManufacturers.Local.FirstOrDefault(m => m.Name.ToLowerInvariant() == seedKit.ThreadManufacturer.ToLowerInvariant());
                if (threadManufacturer == null)
                {
                    threadManufacturer = new ThreadManufacturer(_lazyLoader)
                    {
                        Name = seedKit.ThreadManufacturer
                    };
                    _dbContext.ThreadManufacturers.Add(threadManufacturer);
                }
                dto.ThreadManufacturer = threadManufacturer;
                var fabricItem = _dbContext.FabricItems.Local.FirstOrDefault(f => f.Fabric != null && f.Fabric.Name == seedKit.FabricItem);
                if (fabricItem == null)
                {
                    fabricItem = new FabricItem((_lazyLoader))
                    {
                        Fabric = _dbContext.Fabrics.First(f => f.Name == seedKit.FabricItem), Sku = "KitModel", ColorId = "-", ColorName = "-"
                    };
                    _dbContext.FabricItems.Add(fabricItem);
                }
                dto.FabricItem = fabricItem;
                dtoKits.Add(dto);
            }

            _dbContext.Kits.AddRange(dtoKits);
        }