public static LineItem ToLineItem(this Product product, int quantity, string currency)
        {
            var lineItem = new LineItem();

            lineItem.CatalogId = product.CatalogId;
            lineItem.CategoryId = product.CategoryId;
            lineItem.Currency = currency;
            lineItem.ImageUrl = product.ImageUrl;
            lineItem.Name = product.Name;
            lineItem.Price = product.Price;
            lineItem.ProductId = product.Id;
            lineItem.Quantity = quantity;
            lineItem.Sku = product.Sku;

            return lineItem;
        }
        public static LineItem ToViewModel(this DataContracts.Orders.LineItem lineItem)
        {
            var lineItemModel = new LineItem();

            lineItemModel.CatalogId = lineItem.CatalogId;
            lineItemModel.CategoryId = lineItem.CategoryId;
            lineItemModel.Currency = lineItem.Currency;
            lineItemModel.Id = lineItem.Id;
            lineItemModel.ImageUrl = lineItem.ImageUrl;
            lineItemModel.Name = lineItem.Name;

            lineItemModel.Price = new Price
            {
                Original = lineItem.BasePrice,
                ProductId = lineItem.ProductId,
                Sale = lineItem.Price
            };

            lineItemModel.ProductId = lineItem.ProductId;
            lineItemModel.Quantity = lineItem.Quantity;
            lineItemModel.Sku = null;

            return lineItemModel;
        }
        public static LineItem ToViewModel(this DataContracts.Cart.CartItem lineItem)
        {
            var lineItemModel = new LineItem();

            lineItemModel.CatalogId = lineItem.CatalogId;
            lineItemModel.CategoryId = lineItem.CategoryId;
            lineItemModel.Currency = lineItem.Currency;
            lineItemModel.Id = lineItem.Id;
            lineItemModel.ImageUrl = lineItem.ImageUrl;
            lineItemModel.Name = lineItem.Name;

            lineItemModel.Price = new Price
            {
                Original = lineItem.ListPrice,
                ProductId = lineItem.ProductId,
                Sale = lineItem.SalePrice > 0 ? (decimal?)lineItem.SalePrice : null
            };

            lineItemModel.ProductId = lineItem.ProductId;
            lineItemModel.Quantity = lineItem.Quantity;
            lineItemModel.Sku = lineItem.ProductCode;

            return lineItemModel;
        }
 public void Add(LineItem lineItem)
 {
     var existingLineItem = LineItems.FirstOrDefault(li => li.ProductId == lineItem.ProductId);
     if (existingLineItem != null)
     {
         existingLineItem.Quantity += lineItem.Quantity;
     }
     else
     {
         LineItems.Add(lineItem);
     }
 }