HELP with Reference to object not established as an instance of an object. in ASP.NET MVC

0

The fact is that I am developing an online store in ASP.NET MVC, the fact is that when I want to add an item to the basket I get this error:

Object reference not set as an instance of an object.

And I get it in this part of the code:

    public void AddToBasket(HttpContextBase httpContext, string productId ){
        Basket basket = GetBasket(httpContext, true);

    //Justo aqui debajo

        BasketItem item = basket.BasketItems.FirstOrDefault(i => i.ProductId == productId);

 //El de arriba

        if (item == null){

I know the answer is to put something in somewhere but I do not get anything. Besides, I'm supposed to do it before in this method:

private Basket CreateNewBasket (HttpContextBase httpContext) {

        Basket basket = new Basket();

        basketContext.Insert(basket);

        basketContext.Commit();

        HttpCookie cookie = new HttpCookie(BasketSessionName);

        cookie.Value = basket.Id;

        cookie.Expires = DateTime.Now.AddDays(1);

        httpContext.Response.Cookies.Add(cookie);

        return basket;
    }

In any case, for more information, this is the complete method:

public void AddToBasket (HttpContextBase httpContext, string productId) {

Basket basket = GetBasket (httpContext, true);

        BasketItem item = basket.BasketItems.FirstOrDefault(i => i.ProductId == productId);

        if (item == null)
        {
            item = new BasketItem()
            {
                BasketId = basket.Id,
                ProductId = productId,
                Quanity = 1
            };

            basket.BasketItems.Add(item);
        }
        else {


            //item.BasketId = bas;
            //item.ProductId = prroductId;
            item.Quanity = item.Quanity + 1;
        }



        basketContext.Commit();
    }

I imagine you will need more data so, for example, you can see GetBasket which refers to the following method:

private Basket GetBasket (HttpContextBase httpContext, bool createIfNull) {

        HttpCookie cookie = httpContext.Request.Cookies.Get(BasketSessionName);

        Basket basket = new Basket();

        if (cookie != null)
        {
            string basketId = cookie.Value;
            if (!string.IsNullOrEmpty(basketId))
            {
                basket = basketContext.Find(basketId);
            }
            else
            {
                if (createIfNull)
                {
                    basket = CreateNewBasket(httpContext);
                }
            }
        }
        else {
            if (createIfNull)
            {
                basket = CreateNewBasket(httpContext);
            }
        }

        return basket;

    }

And the class that is supposed to store this data are: Basket:

public class Basket: BaseEntity     {         public virtual ICollection BasketItems {get; set; }

    public Basket() {
        this.BasketItems = new List<BasketItem>();
    }
}

And the basketItem

public class BasketItem: BaseEntity

{
    public string BasketId { get; set; }

    public string ProductId { get; set; }

    public int Quanity { get; set; }
}

The truth is that I do not know what's wrong, thank you very much for your time

    
asked by jojoji54 29.07.2018 в 03:03
source

0 answers