Cześć co to jest za błąd i jak go naprawić wyskauje mi wtedy kiedy chce dodać nowe zamówienie do bazy
using Sklep.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Web;
namespace Sklep.Infrastructure
{
public class OrderManager
{
private ISessionManager session;
private ApplicationDbContext db = new ApplicationDbContext();
public OrderManager(ISessionManager session)
{
this.session = session;
}
public const string sessionKey = "BasketKey";
public List<OrderItems> GetBasket()
{
List<OrderItems> basket;
if(session.Get<List<OrderItems>>(sessionKey)==null)
{
basket = new List<OrderItems>();
}
else
{
basket = session.Get<List<OrderItems>>(sessionKey) as List<OrderItems>;
}
return basket;
}
public void AddToBasket(int productId)
{
var basket = GetBasket();
var basketItem = basket.Find(x => x.ProductId == productId);
if(basketItem != null)
{
basketItem.Quantity++;
}
else
{
var product = db.Products.Find(productId);
if(product!= null)
{
var newBasketItems = new OrderItems
{
Product = product,
ProductId = productId,
Quantity = 1,
Price = product.Price
};
basket.Add(newBasketItems);
}
}
session.Set<List<OrderItems>>(sessionKey, basket);
}
public int DeleteFromBasket(int productId)
{
var basket = GetBasket();
var basketItem = basket.Find(x => x.ProductId == productId);
if(basketItem != null)
{
basketItem.Quantity--;
return basketItem.Quantity;
}
else
{
basket.Remove(basketItem);
}
return 0;
}
public decimal GetTotalValue()
{
var basket = GetBasket();
return basket.Sum(x => (x.Product.Price * x.Quantity));
}
public int GetAmountBasketItems()
{
var basket = GetBasket();
return basket.Sum(x => x.Quantity);
}
public Order CreateOrder(Order newOrder, string UserId)
{
var basket = GetBasket();
var user = db.Users.SingleOrDefault(x => x.Id == UserId);
newOrder.DateOfAddition = DateTime.UtcNow;
newOrder.UserId = UserId;
db.Orders.Add(newOrder);
if (newOrder.OrderItems == null)
newOrder.OrderItems = new List<OrderItems>();
decimal basketValue = 0;
foreach (var item in basket)
{
var newOrderItems = new OrderItems()
{
ProductId = item.ProductId,
Product = item.Product,
Quantity = item.Quantity,
Price = item.Price,
};
basketValue += (item.Price * item.Quantity);
newOrder.OrderItems.Add(newOrderItems);
}
newOrder.TotalValue = basketValue;
db.SaveChanges();
return newOrder;
}
public void EmptyBasket()
{
session.Abandom();
}
}
}
Z góry dziekuje za pomoc :)