public void UpdateProduct(Product product) { Product targetProduct = context.Products.Find(product.ProductID); if (targetProduct != null) { targetProduct.AppID = product.AppID; targetProduct.ProductName = product.ProductName; targetProduct.StringID = product.StringID; } if (product.Tags != null) { foreach (Tag entry in product.Tags) { if (entry.TagID == 0) { InsertTag(entry); } else { UpdateTag(entry); } } } if (product.ProductReviews != null) { foreach (ProductReview entry in product.ProductReviews) { if (entry.ProductReviewID == 0) { InsertProductReview(entry); } else { UpdateProductReview(entry); } } } if (product.ProductDetail != null) { if (product.ProductDetail.ProductDetailID == 0) { InsertProductDetail(product.ProductDetail); } else { UpdateProductDetail(product.ProductDetail); } } if (product.ProductCategories != null) { foreach (ProductCategory category in product.ProductCategories) { if (category.ProductCategoryID == 0) { InsertProductCategory(category); } else { UpdateProductCategory(category); } } } }
public void AddProduct(Product product) { if (product.Listings == null) { product.Listings = new HashSet<Listing>(); } product.Listings.Add(this); Product = product; }
public void InsertProduct(Product product) { context.Products.Add(product); if (product.Tags != null) { foreach (Tag entry in product.Tags) { if (entry.TagID == 0) { InsertTag(entry); } else { UpdateTag(entry); } } } if (product.ProductReviews != null) { foreach (ProductReview entry in product.ProductReviews) { if (entry.ProductReviewID == 0) { InsertProductReview(entry); } else { UpdateProductReview(entry); } } } if (product.ProductDetail != null) { if (product.ProductDetail.ProductDetailID == 0) { InsertProductDetail(product.ProductDetail); } else { UpdateProductDetail(product.ProductDetail); } } if (product.ProductCategories != null) { foreach (ProductCategory category in product.ProductCategories) { if (category.ProductCategoryID == 0) { InsertProductCategory(category); } else { UpdateProductCategory(category); } } } }
public void BuildProduct(Product product, ProductDetail productDetail) { }
public bool OwnsProduct(Product product) { if (OwnedGames == null) return false; return (OwnedGames.Where(o => o.AppID == product.AppID).Count() >= 1) ? true : false; }
public void AddDLC(Product product) { if (DLCs == null) { DLCs = new HashSet<Product>(); } string bob = "{0}"; String.Format(bob, "yo"); DLCs.Add(product); product.ProductDetail.BaseProduct = this.Product; }
public void AddProduct(Product product) { Product = product; if (string.IsNullOrEmpty(Title)) { if (string.IsNullOrEmpty(product.ProductName) == false) { Title = product.ProductName; } } }
// --- Listing building logic public List<String> AddSteamProductKeys(Platform platform, string input) { List<String> addedKeys = new List<String>(); input = input.Replace("\r\n", "\r"); List<String> lines = input.Split(new string[] { "\r" }, StringSplitOptions.RemoveEmptyEntries).ToList(); Regex SubIDPriceKey = new Regex(@"^sub/([0-9]+)\t+([0-9,]+)\t+([0-9]+)\t+([^\t]+)(\t+[^\t]+)?$"); Regex AppIDPriceKey = new Regex(@"^([0-9]+)\t+([0-9]+)\t+([^\t]+)(\t+[^\t]+)?$"); //Regex ExistingSubKey = new Regex(@"^sub/([0-9]+)\t+([0-9]+)(\t+[^\t]+)?$"); DateTime dateAdded = DateTime.Now; Match match; bool isGift = false; string key = ""; string gameName = ""; int appId = 0; int price = 0; int subId = 0; List<int> appIds = new List<int>(); foreach (String line in lines) { price = 0; appId = 0; gameName = ""; key = ""; isGift = false; subId = 0; appIds = new List<int>(); if (AppIDPriceKey.Match(line).Success) { match = AppIDPriceKey.Match(line); appId = Int32.Parse(match.Groups[1].ToString()); price = Int32.Parse(match.Groups[2].ToString()); gameName = match.Groups[3].Value; if (String.IsNullOrEmpty(match.Groups[4].Value)) { isGift = true; } else { key = match.Groups[4].Value.Trim(); } } else if (SubIDPriceKey.Match(line).Success) { match = SubIDPriceKey.Match(line); subId = Int32.Parse(match.Groups[1].Value); string[] separator = new string[] { "," }; foreach (string splitId in match.Groups[2].Value.Split(separator, StringSplitOptions.RemoveEmptyEntries)) { appIds.Add(Int32.Parse(splitId)); } if (String.IsNullOrEmpty(match.Groups[5].Value)) { isGift = true; } else { key = match.Groups[5].Value.Trim(); } gameName = match.Groups[4].Value; price = Int32.Parse(match.Groups[3].ToString()); } else { addedKeys.Add("Unable to parse: " + line); continue; } Listing listing = null; if (appId != 0) { listing = GetListingByAppID(appId, platform.PlatformName); } else if (subId != 0) { listing = GetListingByAppID(subId, platform.PlatformName); } if (listing != null) { listing.ListingPrice = price; listing.AddProductKey(new ProductKey(isGift, key)); listing.DateEdited = dateAdded; listingRepository.UpdateListing(listing); addedKeys.Add(platform.PlatformName + ": " + listing.ListingName + "...+1!"); } else { listing = new Listing(gameName, price, dateAdded); listing.AddPlatform(platform); listing.AddProductKey(new ProductKey(isGift, key)); Product product = new Product(appId, gameName); //Add logic to get data from api on product info & product details listing.AddProduct(product); // insert this listing entry for now, as we build the listing with data gathered from Steam's store api // we may need to build more listings recursively, we need this listing to be in the repository so it doesn't get stuck in a loop AddListing(listing); if (appId != 0) { BuildListingWithAppID(listing, appId); } else if (appIds.Count != 0) { listing.Product.AppID = subId; BuildListingWithPackageID(listing, appIds, gameName); } UpdateListing(listing); addedKeys.Add(platform.PlatformName + ": " + listing.ListingName + "...created!"); } // test regex unitOfWork.Save(); } return addedKeys; }
public List<String> AddProductKeys(Platform platform, string input) { if (platform.PlatformName.ToLower().CompareTo("steam") == 0) { return AddSteamProductKeys(platform, input); } List<String> addedKeys = new List<String>(); input = input.Replace("\r\n", "\r"); List<String> lines = input.Split(new string[] { "\r" }, StringSplitOptions.RemoveEmptyEntries).ToList(); Regex NamePriceKey = new Regex("^([^\t]+)\t+([0-9]+)\t+([^\t]+)$"); Regex NamePrice = new Regex("^([^\t]+)\t+([0-9]+)$"); DateTime dateAdded = DateTime.Now; Match match; bool isGift = false; string key = ""; string gameName = ""; int price = 0; foreach (String line in lines) { price = 0; gameName = ""; key = ""; isGift = false; if (NamePriceKey.Match(line).Success) { match = NamePriceKey.Match(line); gameName = match.Groups[1].Value; price = Int32.Parse(match.Groups[2].ToString()); key = match.Groups[3].ToString(); } else if (NamePrice.Match(line).Success) { match = NamePrice.Match(line); gameName = match.Groups[1].Value; price = Int32.Parse(match.Groups[2].ToString()); isGift = true; } Listing listing; listing = listingRepository.GetListings().Where(l => l.ContainsPlatform(platform) && object.Equals(l.Product.ProductName, gameName)).SingleOrDefault(); if (listing != null) { listing.ListingPrice = price; listing.AddProductKey(new ProductKey(isGift, key)); listing.DateEdited = dateAdded; listingRepository.UpdateListing(listing); addedKeys.Add(platform.PlatformName + ": " + listing.ListingName + "...+1!"); } else { listing = new Listing(gameName, price, dateAdded); listing.AddPlatform(platform); listing.AddProductKey(new ProductKey(isGift, key)); Product product = new Product(gameName); //Add logic to get data from api on product info & product details listing.AddProduct(product); listingRepository.InsertListing(listing); addedKeys.Add(platform.PlatformName + ": " + listing.ListingName + "...created!"); } } return addedKeys; }
public void EditProduct(Product product) { listingRepository.UpdateProduct(product); unitOfWork.Save(); }