Ejemplo n.º 1
0
        public void TestClearProducts()
        {
            ShoppingList sl = new ShoppingList();
            sl.OnAdd += this.TestOnAdd;
            sl.OnUpdateProductCount += this.TestOnUpdateProductCount;
            sl.OnUpdateTotalCost += this.TestOnUpdateTotalCost;

            Product p = new Product();
            p.Id = 1;
            p.Name = "TestProduct";
            p.Price = 1;

            sl.Add(null, p);
            Assert.AreEqual(1, sl.ProductCount);
            Assert.AreEqual(1, sl.TotalCost);

            sl.OnUpdateProductCount -= this.TestOnUpdateProductCount;
            sl.OnUpdateTotalCost -= this.TestOnUpdateTotalCost;
            sl.OnUpdateProductCount += this.TestClearProductsOnUpdateProductCount;
            sl.OnUpdateTotalCost += this.TestClearProductsOnUpdateTotalCost;

            sl.Clear();
            Assert.AreEqual(0, sl.ProductCount);
            Assert.AreEqual(0, sl.TotalCost);
        }
Ejemplo n.º 2
0
 public override void Add(string tag, Product product)
 {
     if (product != null)
     {
         Product existingProduct = null;
         if ((existingProduct = FindProduct(product)) != null)
         {
             // If product with same tag exists, we do nothing. If it does, we push it through.
             string existingTag = null;
             if ((existingTag = FindTag(tag)) == null)
             {
                 tags.Add(tag);
                 logger.Write("Register/ShoppingListNoDuplicate", LogLevel.INFO, "Existing product, but new tag. Moving along..");
                 base.Add(tag, product);
             }
             else
             {
                 logger.Write("Register/ShoppingListNoDuplicate", LogLevel.INFO, "Product with same tag already in basket.");
                 OnAddFail(Color.Red, FLASH_LED_TIMESPAN);
             }
         }
         else
         {
             tags.Add(tag);
             logger.Write("Register/ShoppingListNoDuplicate", LogLevel.INFO, "New product, new tag.");
             base.Add(tag, product);
         }
     }
 }
Ejemplo n.º 3
0
        public void AddProduct(Product product)
        {
            if (product != null)
            {
                if (this.InvokeRequired)
                {
                    this.BeginInvoke((MethodInvoker)delegate()
                    {
                        AddProduct(product);
                    });
                }
                else
                {
                    string[] row = { product.Id.ToString(), product.Name, "1", product.Price.ToString(), product.Price.ToString() };

                    try
                    {
                        this.ShoppingListDataGrid.Rows.Add(row);
                        logger.Write("Register/Gui", LogLevel.INFO, string.Format("Added product {0}", product.Id));
                    }
                    catch (InvalidOperationException ioe)
                    {
                        logger.Write("Register/Gui", LogLevel.ERROR, "Error adding product. " + ioe.ToString());
                    }
                }
            }
            else
            {
                logger.Write("Register/Gui", LogLevel.ERROR, "Add: Profuct is NULL");
            }
        }
Ejemplo n.º 4
0
 public void RemoveProduct(Product product)
 {
     if (product != null)
     {
         if (this.InvokeRequired)
         {
             this.BeginInvoke((MethodInvoker)delegate()
             {
                 RemoveProduct(product);
             });
         }
         else
         {
             foreach (DataGridViewRow row in this.ShoppingListDataGrid.Rows)
             {
                 if (row.Cells[0].Value.Equals(product.Id))
                 {
                     this.ShoppingListDataGrid.Rows.RemoveAt(row.Index);
                     logger.Write("Register/Gui", LogLevel.INFO, String.Format("Removed product {0}", product.Id));
                 }
             }
         }
     }
     else
     {
         logger.Write("Register/Gui", LogLevel.ERROR, "Remove: Profuct is NULL");
     }
 }
Ejemplo n.º 5
0
        public virtual void Add(string tag, Product product)
        {
            if (product != null)
            {
                Product existingProduct = null;
                if ((existingProduct = FindProduct(product)) != null)
                {
                    products[existingProduct]++;
                    logger.Write("Register/ShoppingList", LogLevel.INFO, string.Format("Updated product ({0})", existingProduct.Id));

                    OnUpdate(existingProduct, products[existingProduct]);
                }
                else
                {
                    products.Add(product, 1);
                    logger.Write("Register/ShoppingList", LogLevel.INFO, string.Format("Added product ({0})", product.Id));

                    OnAdd(product);
                }

                OnUpdateProductCount(this.ProductCount);
                OnUpdateTotalCost(this.TotalCost);
                OnAddSuccess(Color.Green, FLASH_LED_TIMESPAN);
            }
            else
            {
                logger.Write("Register/ShoppingList", LogLevel.ERROR, "Add: Profuct is NULL");
                OnAddFail(Color.Red, FLASH_LED_TIMESPAN);
            }
        }
Ejemplo n.º 6
0
 private void TestOnUpdate(Product p, int q)
 {
     Assert.AreEqual(1, p.Id);
     Assert.AreEqual("TestProduct", p.Name);
     Assert.AreEqual(1, p.Price);
     Assert.AreEqual(2, q);
 }
Ejemplo n.º 7
0
        public void TestClearTags()
        {
            ShoppingListNoDuplicate sl = new ShoppingListNoDuplicate();
            sl.OnAdd += this.TestOnAdd;
            sl.OnUpdateProductCount += this.TestOnUpdateProductCount;
            sl.OnUpdateTotalCost += this.TestOnUpdateTotalCost;

            Product p = new Product();
            p.Id = 1;
            p.Name = "TestProduct";
            p.Price = 1;

            sl.Add("E00401003E44753B", p);
            Assert.AreEqual(1, sl.ProductCount);
            Assert.AreEqual(1, sl.TotalCost);
            Assert.AreEqual(1, sl.TagCount);

            sl.OnUpdateProductCount -= this.TestOnUpdateProductCount;
            sl.OnUpdateTotalCost -= this.TestOnUpdateTotalCost;
            sl.OnUpdateProductCount += this.TestClearProductsOnUpdateProductCount;
            sl.OnUpdateTotalCost += this.TestClearProductsOnUpdateTotalCost;

            sl.Clear();
            Assert.AreEqual(0, sl.ProductCount);
            Assert.AreEqual(0, sl.TotalCost);
            Assert.AreEqual(0, sl.TagCount);
        }
Ejemplo n.º 8
0
 public void addProduct(Product product)
 {
     Product old = (from p in products.Keys where p.Id == product.Id select p).SingleOrDefault();
     if (old!=null)
     {
         products[old]++;
     }
     else
     {
         products.Add(product, 1);
     }
 }
Ejemplo n.º 9
0
        public int getRequiredQuantityForProduct(Product product)
        {
            int required;
            BasketProduct basketProduct = service.GetBasketProduct(basket.Id, product.Id);

            if (basketProduct == null)
            {
                required = 0;
            }
            else
            {
                required = basketProduct.Quantity;
            }
            return required;
        }
Ejemplo n.º 10
0
        public void reader_OnTagRead(string tag)
        {
            SystemSounds.Asterisk.Play();

            if (IsUserLoggedIn())
            {
                product = service.GetProductByTag(tag);

                if (product != null)
                {
                    cart.addProduct(product);
                    gui.RefreshList(cart);
                }
            }
            else
            {
                LoginUser(tag);

                if(IsUserLoggedIn())
                {
                    gui.RefreshList(cart);
                }
            }
        }
Ejemplo n.º 11
0
 private void TestOnRemove(Product p)
 {
     Assert.AreEqual(1, p.Id);
     Assert.AreEqual("TestProduct", p.Name);
     Assert.AreEqual(1, p.Price);
 }
Ejemplo n.º 12
0
 public void UpdateProduct(Product product, int quantity)
 {
     if (product != null)
     {
         if (this.InvokeRequired)
         {
             this.BeginInvoke((MethodInvoker)delegate()
             {
                 UpdateProduct(product, quantity);
             });
         }
         else
         {
             foreach (DataGridViewRow row in this.ShoppingListDataGrid.Rows)
             {
                 if (row.Cells[0].Value.Equals(product.Id.ToString()))
                 {
                     row.Cells[2].Value = quantity;
                     row.Cells[4].Value = product.Price * quantity;
                     logger.Write("Register/Gui", LogLevel.INFO, String.Format("Updated product {0}", product.Id));
                 }
             }
         }
     }
     else
     {
         logger.Write("Register/Gui", LogLevel.ERROR, "Update: Profuct is NULL");
     }
 }
Ejemplo n.º 13
0
 protected Product FindProduct(Product product)
 {
     foreach (KeyValuePair<Product, int> p in products)
     {
         if (product.Id == p.Key.Id)
         {
             return p.Key;
         }
     }
     return null;
 }
Ejemplo n.º 14
0
        public virtual void Remove(Product product)
        {
            if (product != null)
            {
                Product existingProduct = null;
                if ((existingProduct = FindProduct(product)) != null)
                {
                    this.products.Remove(existingProduct);
                    logger.Write("Register/ShoppingList", LogLevel.INFO, string.Format("Removed product ({0})", existingProduct.Id));

                    OnRemove(existingProduct);
                }
                else
                {
                    logger.Write("Register/ShoppingList", LogLevel.ERROR, string.Format("Cannot remove product ({0})", existingProduct.Id));
                }
            }
            else
            {
                logger.Write("Register/ShoppingList", LogLevel.ERROR, "Remove: Profuct is NULL");
            }
        }
Ejemplo n.º 15
0
 public int getActualQuantityForProduct(Product product)
 {
     return products[product];
 }