public int AddItem(int id) { int count = 0; if (User.Identity.IsAuthenticated) { var userId = int.Parse(User.Identity.Name); var product = repository.Products.SingleOrDefault(p => p.Id == id); var itemExist = repository.ItemInOrders.SingleOrDefault(i => i.CustomerId == userId && i.ProductId == id); if (itemExist != null) { itemExist.Quantity++; } else { var item = new ItemInOrder { CustomerId = userId, Price = product.Price, ProductId = id, Quantity = 1, ImagePath = "asDasd" }; repository.ItemInOrders.Add(item); } repository.SaveChanges(); count = repository.ItemInOrders.Where(i => i.CustomerId == userId && i.OrderId == null).Sum(o => o.Quantity); } return(count); }
public ItemInOrder GetNextItemInOrder() { Random rand = new Random(Guid.NewGuid().GetHashCode()); int ProductId = rand.Next() % ProductGenerator.ProductId + 1; int Quantity = rand.Next() % 100 + 1; ItemInOrder a = new ItemInOrder(ItemInOrderId, ProductId, Quantity); ItemInOrderId++; return(a); }
public ActionResult AddItem(string itemName, int?quantity, double?price) { currentOrder.ItemErrorMessages.Clear(); if (string.IsNullOrEmpty(itemName)) { currentOrder.ItemErrorMessages.Add("Please enter name of an item"); } if (quantity == null || quantity == 0) { currentOrder.ItemErrorMessages.Add("Please enter quantity of the item. Quantity cannot eq 0."); } if (price == null) { currentOrder.ItemErrorMessages.Add("Please enter price of the item."); } if (currentOrder.ItemErrorMessages.Count() > 0) { return(View("Create", currentOrder)); } var itemInOrder = currentOrder.ItemsInOrder. Where(ist => ist.Item.Name.ToLower() == itemName.ToLower()).FirstOrDefault(); if (itemInOrder != null) { itemInOrder.Quantity += quantity ?? 0; return(View("Create", currentOrder)); } var item = db.Items.Where(i => i.Name.ToLower() == itemName.ToLower()).FirstOrDefault(); if (item == null) { currentOrder.ItemErrorMessages.Add("No such item in catalogue: " + item + "."); currentOrder.ItemErrorMessages.Add("No such item in catalogue: " + item + "."); return(View("Create", currentOrder)); } itemInOrder = new ItemInOrder() { Item = item, Quantity = quantity ?? 0, CreatedOn = DateTime.Now, Price = (decimal?)price }; currentOrder.ItemsInOrder.Add(itemInOrder); return(View("Create", currentOrder)); }