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);
                    }
                }
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }
Example #4
0
        public void BuildProduct(Product product, ProductDetail productDetail)
        {

        }
Example #5
0
 public bool OwnsProduct(Product product)
 {
     if (OwnedGames == null) return false;
     return (OwnedGames.Where(o => o.AppID == product.AppID).Count() >= 1) ? true : false;
 }
Example #6
0
        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;
        }
Example #7
0
        public void AddProduct(Product product)
        {
            Product = product;

            if (string.IsNullOrEmpty(Title))
            {
                if (string.IsNullOrEmpty(product.ProductName) == false)
                {
                    Title = product.ProductName;
                }
            }
        }
Example #8
0
        // --- 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;
        }
Example #9
0
        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;
        }
Example #10
0
 public void EditProduct(Product product)
 {
     listingRepository.UpdateProduct(product);
     unitOfWork.Save();
 }