public TrortAdder() { _Adders[0].CarryOutput += _Adders[1].InputCarry; _Adders[0].SumOutput += (s, t) => { _Trits[0] = t; }; _Adders[1].CarryOutput += _Adders[2].InputCarry; _Adders[1].SumOutput += (s, t) => { _Trits[1] = t; }; _Adders[2].CarryOutput += _Adders[3].InputCarry; _Adders[2].SumOutput += (s, t) => { _Trits[2] = t; }; _Adders[3].CarryOutput += _Adders[4].InputCarry; _Adders[3].SumOutput += (s, t) => { _Trits[3] = t; }; _Adders[4].CarryOutput += _Adders[5].InputCarry; _Adders[4].SumOutput += (s, t) => { _Trits[4] = t; }; _Adders[5].CarryOutput += _Adders[6].InputCarry; _Adders[5].SumOutput += (s, t) => { _Trits[5] = t; }; _Adders[6].CarryOutput += _Adders[7].InputCarry; _Adders[6].SumOutput += (s, t) => { _Trits[6] = t; }; _Adders[7].CarryOutput += _Adders[8].InputCarry; _Adders[7].SumOutput += (s, t) => { _Trits[7] = t; }; _Adders[8].CarryOutput += _Adders[9].InputCarry; _Adders[8].SumOutput += (s, t) => { _Trits[8] = t; }; _Adders[9].CarryOutput += _Adders[10].InputCarry; _Adders[9].SumOutput += (s, t) => { _Trits[9] = t; }; _Adders[10].CarryOutput += _Adders[11].InputCarry; _Adders[10].SumOutput += (s, t) => { _Trits[10] = t; }; _Adders[Trort.NUMBER_OF_TRITS - 1].CarryOutput += (s, carry) => { CarryOutState = carry; if (!locker) { CarryOut?.Invoke(this, carry); } }; _Adders[Trort.NUMBER_OF_TRITS - 1].SumOutput += (s, sum) => { _Trits[Trort.NUMBER_OF_TRITS - 1] = sum; if (!locker) { BusOutput?.Invoke(this, BusValue); } }; }
public AddToCartResponse AddToCart(AddToCartRequest request) { var response = new AddToCartResponse { IsSuccessful = false, Message = "" }; try { var customer = _context.Customers .Where(x => x.Id == request.CarryOutToAddToCart.CustomerId) .FirstOrDefault(); Food food = null; List <CarryOut> existingFood = null; Beverage beverage = null; List <CarryOut> existingBeverages = null; int currentFoodQuantity = 0; int currentBeverageQuantity = 0; if (request.CarryOutToAddToCart.Food != null) { food = _context.Foods .Where(x => x.Id == request.CarryOutToAddToCart.Food.Id) .FirstOrDefault(); } if (request.CarryOutToAddToCart.Beverage != null) { beverage = _context.Beverages .Where(x => x.Id == request.CarryOutToAddToCart.Beverage.Id) .FirstOrDefault(); } if (customer != null) { if (food != null) { existingFood = _context.CarryOuts .Include(x => x.Food) .Include(x => x.Beverage) .Include(x => x.Customer) .Where(x => x.Customer.Id == customer.Id) .Where(x => x.Food.Name == food.Name) .Where(x => x.SubmissionTime == null) .ToList(); foreach (var item in existingFood) { currentFoodQuantity += item.FoodQuantity; } _context.RemoveRange(existingFood); } if (beverage != null) { existingBeverages = _context.CarryOuts .Include(x => x.Food) .Include(x => x.Beverage) .Include(x => x.Customer) .Where(x => x.Customer.Id == customer.Id) .Where(x => x.Beverage.Name == beverage.Name) .Where(x => x.SubmissionTime == null) .ToList(); foreach (var item in existingBeverages) { currentBeverageQuantity += item.BeverageQuantity; } _context.RemoveRange(existingBeverages); } var cartItem = new CarryOut { Beverage = beverage, BeverageQuantity = request.CarryOutToAddToCart.BeverageQuantity + currentBeverageQuantity, BundleId = 0, Customer = customer, Food = food, FoodQuantity = request.CarryOutToAddToCart.FoodQuantity + currentFoodQuantity, SubmissionTime = null, Id = 0 }; _context.Add(cartItem); _context.SaveChanges(); response.IsSuccessful = true; response.Message = "Successfully added carry out to cart for the customer."; } } catch (Exception ex) { response.Message = ex.ToString(); } return(response); }