/// <summary> /// Saves a new Game Product and attaches it to a game. /// </summary> /// <param name="gameId">The Id of the game this product belongs to</param> /// <param name="gameProduct">The new gameProduct to save</param> /// <returns>Redirects to the details page for the game.</returns> private async Task<ActionResult> SaveGameProduct(Guid gameId, GameProduct gameProduct) { gameProduct.Game = await db.Games.FindAsync(gameId); db.GameProducts.Add(gameProduct); await db.SaveChangesAsync(); if (gameProduct is PhysicalGameProduct) { ProductLocationInventory onlineInventory = new ProductLocationInventory { ProductId = gameProduct.Id, LocationId = await db.Locations. Where(l => l.SiteName == Location.ONLINE_WAREHOUSE_NAME). Select(l => l.Id). FirstOrDefaultAsync(), NewOnHand = 0, UsedOnHand = 0, NewOnOrder = 0 }; db.ProductLocationInventories.Add(onlineInventory); await db.SaveChangesAsync(); } this.AddAlert(AlertType.Success, "Successfully added a new SKU."); return RedirectToAction("Details", "Games", new { id = gameId }); }
public void SetupBase() { memberId = new Guid("59EF92BE-D71F-49ED-992D-DF15773DAF98"); addressId = new Guid("53BE47E4-0C74-4D49-97BB-7246A7880B39"); creditCardId = new Guid("D9A69026-E3DA-4748-816B-293D9BE3E43F"); cartProduct1Id = new Guid("3882D242-A62A-4E99-BA11-D6EF340C2EE8"); cartProduct2Id = new Guid("7413D131-7337-42DC-A7E4-1155EB91E8C9"); memberAddress = new MemberAddress { Address = new Address { City = "Waterloo", PostalCode = "N2L 6R2", StreetAddress = "445 Wes Graham Way" }, CountryCode = "CA", Country = new Country { CountryCode = "CA", CountryName = "Canada", FederalTaxRate = 0.05m }, ProvinceCode = "ON", Province = new Province { CountryCode = "CA", ProvinceCode = "ON", ProvincialTaxRate = 0.08m }, MemberId = memberId, Id = addressId }; game = new Game { Name = "A game" }; platform = new Platform { PlatformCode = "XONE", PlatformName = "Xbox One" }; cartProduct1 = new PhysicalGameProduct { Id = cartProduct1Id, NewWebPrice = 60.00m, ProductAvailabilityStatus = AvailabilityStatus.Available, ReleaseDate = new DateTime(635835582902643008L, DateTimeKind.Local), UsedWebPrice = 10.00m, Game = game, Platform = platform }; cartProduct2 = new PhysicalGameProduct { Id = cartProduct2Id, NewWebPrice = 59.99m, ProductAvailabilityStatus = AvailabilityStatus.Available, ReleaseDate = new DateTime(635837213100050176L, DateTimeKind.Local), Game = game, Platform = platform }; newProduct1CartItem = new CartItem { IsNew = true, MemberId = memberId, Product = cartProduct1, ProductId = cartProduct1.Id, Quantity = 1 }; usedProduct1CartItem = new CartItem { IsNew = false, MemberId = memberId, Product = cartProduct1, ProductId = cartProduct1.Id, Quantity = 1 }; newProduct2CartItem = new CartItem { IsNew = true, MemberId = memberId, Product = cartProduct2, ProductId = cartProduct2.Id, Quantity = 1 }; validNotSavedShippingDetails = new WebOrderCheckoutDetails { Address = new Address { City = "Waterloo", PostalCode = "N2L 6R2", POBoxNumber = "123", StreetAddress = "445 Wes Graham Way" }, ProvinceCode = "ON", CountryCode = "CA" }; validAddressViewModel = new AddressViewModel { City = "Waterloo", CountryCode = "CA", ProvinceCode = "ON", POBoxNumber = "1234", PostalCode = "N2L 6R2", StreetAddress = "445 Wes Graham Way" }; memberCreditCard = new MemberCreditCard { Id = creditCardId, CardholderName = "John Doe", ExpiryMonth = 11, ExpiryYear = 2015, Last4Digits = "4242", Member = member, MemberId = memberId, StripeCardId = "cardToken" }; member = new Member { UserId = memberId, CreditCards = new List<MemberCreditCard> { memberCreditCard } }; memberUser = new User { FirstName = "John", LastName = "Doe", Id = memberId, PhoneNumber = "800-555-0199", }; validNotSavedShippingBillingDetails = new WebOrderCheckoutDetails { Address = new Address { City = "Waterloo", PostalCode = "N2L 6R2", POBoxNumber = "123", StreetAddress = "445 Wes Graham Way" }, ProvinceCode = "ON", CountryCode = "CA", StripeCardToken = "card_token" }; validSavedShippingBillingDetails = new WebOrderCheckoutDetails { MemberCreditCardId = creditCardId, MemberAddressId = addressId }; cartWithNewAndUsed = new Cart { Items = new List<CartItem> { newProduct1CartItem, usedProduct1CartItem }, Member = member, MemberId = memberId }; }