Beispiel #1
0
 public void PlaceOrder(Guid UserID, AddressDTO addressDTO)
 {
     if (orderDataBaseContext.ItemsExist(UserID))
     {
         Guid AddressID = addressDatabaseContext.AddAddress(UserID, addressDTO);
         CartVariantItemsDTO cartVariantItemsDTO = cartDataBaseContext.GetCart(UserID);
         double subtotal = new double();
         foreach (var cartVariant in cartVariantItemsDTO.CartItems)
         {
             int    OrderQuantity = cartVariant.Quantity;
             double Discount      = cartVariant.Variant.Discount;
             double Price         = cartVariant.Variant.ListingPrice;
             cartVariant.Variant.DiscountedPrice = (Price * (100 - Discount) / 100);
             double DiscountedPrice = cartVariant.Variant.DiscountedPrice;
             subtotal += DiscountedPrice * OrderQuantity;
         }
         cartVariantItemsDTO.SubTotal = subtotal;
         orderDataBaseContext.PlaceOrder(UserID, cartVariantItemsDTO, AddressID);
         productDatabaseContext.UpdateInventory(cartVariantItemsDTO);
         cartDataBaseContext.EmptyCart(UserID);
     }
     else
     {
         throw new CartEmptyException();
     }
 }