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