Beispiel #1
0
        public Guid GetCategoryId(string categoryName)
        {
            if (!ClubCategorys.Any())
            {
                ClubCategorys = _repository.Query <ClubCategory>().ToList();
            }
            var fixedName = categoryName.EndsWith("s") ? categoryName.Remove(categoryName.Length - 1) : categoryName;
            var category  = ClubCategorys.FirstOrDefault(x => x.Name.ToLower() == fixedName.ToLower());

            if (category == null)
            {
                category = new ClubCategory()
                {
                    Name    = fixedName,
                    Created = DateTime.UtcNow
                };
                _repository.Save(category);
                ClubCategorys.Add(category);
            }

            if (category.Id != null)
            {
                return(category.Id.Value);
            }
            return(Guid.Empty);
        }
Beispiel #2
0
        public IEnumerable <ClubCategory> Get([FromUri] string key)
        {
            if (key != GvcKey)
            {
                return(new List <ClubCategory>());
            }

            var service = new GvCommerce.PriceBookServiceClient();

            service.ClientCredentials.UserName.UserName = GvcUsername;
            service.ClientCredentials.UserName.Password = GvcPassword;

            var productTypes = service.GetProductTypeList();

            var clubCategories = new List <ClubCategory>();

            foreach (var type in productTypes)
            {
                var newType = new ClubCategory()
                {
                    Name = type.Name, brands = new List <Brand>()
                };
                var brands = service.GetBrandList(type.ProductTypeID);

                foreach (var brand in brands)
                {
                    var newBrand = new Brand()
                    {
                        Name = brand.BrandName, Models = new List <Model>()
                    };

                    var models = service.GetPriceBookItems(
                        new GvCommerce.PriceBookRequest()
                    {
                        ProductTypeID = type.ProductTypeID,
                        BrandID       = brand.BrandID
                    });

                    foreach (var model in models)
                    {
                        var newModel = new Model()
                        {
                            Name         = model.ModelName,
                            ImageLarge   = model.ImageURLLarge,
                            ImageReg     = model.ImageURLReg,
                            ImageSmall   = model.ImageURLSmall,
                            ImageThumb   = model.ImageURLThumb,
                            ThirdPartyId = model.ModelID.ToString()
                        };

                        newBrand.Models.Add(newModel);
                    }
                    newType.brands.Add(newBrand);
                }

                clubCategories.Add(newType);
            }

            return(clubCategories);
        }
Beispiel #3
0
        public void Migrate()
        {
            try
            {
                var response   = GetJson($"http://tmaggvcpassthroughapi.azurewebsites.net/api/gvc?key=" + "Tmag0nly!81");
                var stringData = GetDataString(response);

                var data = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ClubCategory> >(stringData);

                var categories = _repository.Query <ClubCategory>()
                                 .Include(x => x.Brands)
                                 .Include(x => x.Brands).ThenInclude(x => x.Models);

                foreach (var gvcCat in data)
                {
                    if (gvcCat.Name == "Iron Set")
                    {
                        gvcCat.Name = "Irons";
                    }
                    else if (gvcCat.Name == "Fairway Wood")
                    {
                        gvcCat.Name = "Fairway";
                    }
                    else if (gvcCat.Name == "Hybrid")
                    {
                        gvcCat.Name = "Rescue";
                    }
                    var cat = categories.FirstOrDefault(x => x.Name.ToLower() == gvcCat.Name.ToLower());
                    if (cat == null)
                    {
                        cat = new ClubCategory()
                        {
                            Name = gvcCat.Name, Brands = new List <Brand>()
                        };
                        _repository.Save(cat);
                    }
                    foreach (var gvcBrand in gvcCat.Brands)
                    {
                        var brand = cat.Brands
                                    .FirstOrDefault(x => x.Name.ToLower() == gvcBrand.Name.ToLower());
                        if (brand == null)
                        {
                            brand = new Brand()
                            {
                                Name = gvcBrand.Name, Models = new List <Model>(), ClubCategoryId = cat.Id
                            };
                            cat.Brands.Add(brand);
                            _repository.Save(brand);
                            // _repository.SaveQueue(brand);
                        }

                        foreach (var model in brand.Models)
                        {
                            model.Deleted = DateTime.UtcNow;
                        }

                        foreach (var gvcModel in gvcBrand.Models)
                        {
                            var model = brand.Models
                                        .FirstOrDefault(x => x.Name.ToLower() == gvcModel.Name.ToLower());
                            if (model == null)
                            {
                                model = new Model()
                                {
                                    Name         = gvcModel.Name,
                                    ImageLarge   = gvcModel.ImageLarge,
                                    ImageReg     = gvcModel.ImageReg,
                                    ImageSmall   = gvcModel.ImageSmall,
                                    ImageThumb   = gvcModel.ImageThumb,
                                    ThirdPartyId = gvcModel.ThirdPartyId,
                                    Created      = DateTime.UtcNow,
                                    BrandId      = brand.Id
                                };
                                brand.Models.Add(model);
                                _repository.Save(model);
                            }
                            else
                            {
                                model.Deleted = null;
                                if (model.ImageLarge != gvcModel.ImageLarge)
                                {
                                    model.ImageLarge = gvcModel.ImageLarge;
                                }
                                if (model.ImageReg != gvcModel.ImageReg)
                                {
                                    model.ImageReg = gvcModel.ImageReg;
                                }
                                if (model.ImageSmall != gvcModel.ImageSmall)
                                {
                                    model.ImageSmall = gvcModel.ImageSmall;
                                }
                                if (model.ImageThumb != gvcModel.ImageThumb)
                                {
                                    model.ImageThumb = gvcModel.ImageThumb;
                                }
                                if (model.ThirdPartyId != gvcModel.ThirdPartyId)
                                {
                                    model.ThirdPartyId = gvcModel.ThirdPartyId;
                                }
                            }
                        }
                    }
                    _repository.SaveQueue(cat);
                }
                _repository.Save();
            }catch (Exception e)
            {
                throw e;
            }
        }