public void RemoveFromPOSTransaction(HttpContextBase httpContext, string itemId)
        {
            POSTransaction     posTransaction = GetPOSTransaction(httpContext, true);
            POSTransactionItem item           = posTransaction.POSTransactionItems.FirstOrDefault(p => p.Id == itemId);

            if (item != null)
            {
                if (item.Quantity > 1)
                {
                    --item.Quantity;
                    POSTransactionContext.Commit();
                }
                else
                {
                    posTransaction.POSTransactionItems.Remove(item);
                    POSTransactionContext.Commit();
                }
            }
        }
        public void AddToPOSTransaction(HttpContextBase httpContext, string productId)
        {
            IProductRetrieveService productDataService = new ProductRetrieveService();
            Product product = productDataService.GetProduct(productId);

            if (product == null)
            {
                throw new Exception("Product not found.");
            }

            POSTransaction     posTransaction = GetPOSTransaction(httpContext, true);
            POSTransactionItem item           = posTransaction.POSTransactionItems.FirstOrDefault(t => t.ProductId == productId);

            if (item == null)
            {
                item = new POSTransactionItem()
                {
                    POSTransactionId   = posTransaction.Id,
                    ProductId          = productId,
                    ProductName        = product.Name,
                    ProductDescription = product.Description,
                    Quantity           = 1,
                    Price      = product.Price,
                    ModifiedAt = DateTime.Now
                };

                posTransaction.POSTransactionItems.Add(item);
            }
            else
            {
                ++item.Quantity;
                item.ModifiedAt = DateTime.Now;
            }

            POSTransactionContext.Commit();
        }