I need help with the function below, it was working fine for a few months until now. Now I get:
System.NullReferenceException: 'Object reference not set to an instance of an object.' x was null.
I'm not sure why now is giving me NullReference, orders list is not empty - it has 41 items. Any help is appreciated!
public dynamic UserMostBoughtItem(int userId)
{
try
{
var carts = _cartRepository.GetAllUserCarts(userId);
if(carts.Count > 0)
{
List<Order> orders = new List<Order>();
for (var i = 0; i < carts.Count; i++)
{
var single = _orderRepository.GetOrderItemsOneByOneByCartId(carts[i].Id);
orders.Add(single);
}
// !EXCEPTION!
var fav = orders
.GroupBy(x => x.ItemTitle, x => x.Quantity)
.Select(x => new { ItemTitle = x.Key, Quantity = x.Sum() })
.OrderByDescending(x => x.Quantity)
.Take(1)
.SingleOrDefault();
var image = _orderRepository.FindOrderItemByItemTitle(fav.ItemTitle);
// Find Favorite Item
var favorite = _favoriteRepository.FindByUserId(userId);
if (favorite == null)
{
var newFav = new Favorite()
{
UserId = userId,
Item = fav.ItemTitle,
Quantity = fav.Quantity,
Image = image.ItemImage,
};
_favoriteRepository.Create(newFav);
}
else
{
favorite.Item = fav.ItemTitle;
favorite.Quantity = fav.Quantity;
favorite.Image = image.ItemImage;
_favoriteRepository.Update(favorite);
}
return fav;
}
else
{
return null;
}
}
catch (FavoriteModelException ex)
{
LogMessage(RecordType.Error, ex.Message);
return null;
}
}
I'm trying to find the favorite menu item for a user.