Example #1
0
        public void AddCoffeeOrder(CoffeeOrder coffeeOrder)
        {
            if (coffeeOrder is null)
            {
                throw new ArgumentNullException(nameof(coffeeOrder));
            }

            _coffeeOrder = coffeeOrder;
        }
Example #2
0
 public void OrderCoffee(CupSize size)
 {
     _currentCup = new CoffeeOrder()
     {
         Coffee = new Coffee()
         {
             Size  = size,
             Price = CoffeePrice(size)
         }
     };
 }
Example #3
0
        public PaymentResult CompleteOrderAndPay(decimal payment)
        {
            var result = _paymentService.RemitPayment(Total(), payment);

            if (result.PaymentStatus == PaymentStatus.Success)
            {
                _orders     = new List <CoffeeOrder>();
                _currentCup = null;
            }
            return(result);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Request.Form["id"] == null)
            {
                Response.Redirect("/Coffee.aspx");
            }
            var order = new CoffeeOrder(Request.Form["id"].ToString());

            Session["order"] = order;
            Response.Redirect("Order.aspx");
        }
Example #5
0
        public bool CompleteCup()
        {
            if (_currentCup == null)
            {
                return(false);
            }

            _orders.Add(_currentCup);
            _currentCup = null;

            return(true);
        }
        public CoffeeOrder PlaceOrder()
        {
            var coffeeOrder = new CoffeeOrder(
                Size.ToString(),
                _extraQtyByExtra[Extra.Cream],
                _extraQtyByExtra[Extra.Sugar],
                GetPrice());

            Reset();

            return(coffeeOrder);
        }
Example #7
0
        private CoffeeOrder CreateCoffeeOrder()
        {
            var sizes = Enum.GetValues(typeof(CoffeeSize));
            var size  = (CoffeeSize)sizes.GetValue(_rnd.Next(sizes.Length));

            var creamQty = _rnd.Next(5);
            var sugarQty = _rnd.Next(5);
            var price    = _rnd.Next(1, 5);

            var coffeeOrder = new CoffeeOrder(size.ToString(), creamQty, sugarQty, price);

            return(coffeeOrder);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            string apiLogin       = ConfigurationManager.AppSettings["ApiLogin"];
            string transactionKey = ConfigurationManager.AppSettings["TransactionKey"];

            if ((string.IsNullOrEmpty(apiLogin)) || (apiLogin.Trim().Length == 0) || (apiLogin == "ApiLogin") ||
                (string.IsNullOrEmpty(transactionKey)) || (transactionKey.Trim().Length == 0) || (transactionKey == "TransactionKey"))
            {
                CoffeeOrder order = new CoffeeOrder("");
                order.OrderMessage = "Please replace the ApiLogin and TransactionKey values in Web.config file with your Authorize.Net account!";
                Session["order"]   = order;
                Response.Redirect("Error.aspx");
            }
        }
        private void btnOk_Click(object sender, RoutedEventArgs e)
        {
            CoffeeOrder coffee = new CoffeeOrder();

            coffee.coffeeType = tbxCoffeeType.Text;
            coffee.cupSize    = tbxCoffeeSize.Text;
            SaveCoffee(coffee);

            MessageBox.Show("Coffee Ordered Successfully");
            clearCoffeeDetails();

            tbxCoffeeType.Text = "";
            tbxCoffeeSize.Text = "";
        }
Example #10
0
        public ActionResult OrderPost(CoffeeOrder ord)
        {
            var clientInfo = this.TempData["ClientInfo"] as ClientInfo;

            ord.CreateIP   = clientInfo.Ip;
            ord.OrderETMID = clientInfo.EtmCode;
            //ord.OrderETMID = "ETM0027";
            //ord.OrderFrom = 1;
            const string takedateUrl = "api/Coffee/OrderPost";
            var          fullPath    = ETong.Coffee.Web.Models.Config.GetApiFullPath(takedateUrl);
            var          client      = new HttpClientUtility(new Uri(fullPath));

            Logger.Write(Log.Log_Type.Info, string.Format("调用{0}", fullPath));
            var result = SecurityHttpClient.Post <CoffeeOrder, OrderGroupResult>(fullPath, ord);

            Logger.Write(Log.Log_Type.Info, string.Format("{0}结束,result={1}", fullPath, Json(result.dataMap)));
            return(Json(result));
        }
Example #11
0
        public OrderGroupResult OrderPost([FromBody] CoffeeOrder ord)
        {
            var result = new OrderGroupResult()
            {
            };

            Logger.Write(Log.Log_Type.Info, "Create Order:" + JsonConvert.SerializeObject(ord));
            try
            {
                var logc = new CoffeeLogc();
                result = logc.CreateOrder(ord);
            }
            catch (Exception ex)
            {
                Logger.Write(Log.Log_Type.Error, ex.ToString());
                throw ex;
            };
            return(result);
        }
Example #12
0
        public CoffeeOrder Vend()
        {
            if (_coffeeOrder is null)
            {
                throw new InvalidOperationException("No coffee order placed.");
            }

            if (_availableFunds < _coffeeOrder.Price)
            {
                throw new InsufficientFundsException(_availableFunds, _coffeeOrder.Price);
            }

            _availableFunds -= _coffeeOrder.Price;

            var coffeeOrder = _coffeeOrder;

            _coffeeOrder = null;

            return(coffeeOrder);
        }
Example #13
0
        public override Task <CoffeeOrder> CreateOrder(CreateOrderRequest request, ServerCallContext context)
        {
            this._logger.LogInformation($"Creating order: {request.Size} {request.CoffeeType}");

            var coffeeOrder = new CoffeeOrder
            {
                Id         = _orders.Count() + 1,
                CoffeeType = request.CoffeeType,
                Size       = request.Size
            };

            _orders[coffeeOrder.Id] = coffeeOrder;

            _subscribers.ForEach(async s =>
            {
                await s.WriteAsync(coffeeOrder);
            });

            return(Task.FromResult(coffeeOrder));
        }
Example #14
0
        public CoffeeOrder OrderCoffee(int CoffeeId)
        {
            var Coffee = FindCoffee(CoffeeId);

            foreach (KeyValuePair <Ingredient, int> IngredientsNeeded in Coffee.Ingredients)
            {
                var IngredientStocksNumber = Stocks[IngredientsNeeded.Key];
                if (IngredientStocksNumber < IngredientsNeeded.Value)
                {
                    throw new Exception("Cannot make this coffee, not enough " + IngredientsNeeded.Key.Name);
                }
            }

            foreach (KeyValuePair <Ingredient, int> IngredientsNeeded in Coffee.Ingredients)
            {
                Stocks[IngredientsNeeded.Key] = Stocks[IngredientsNeeded.Key] - IngredientsNeeded.Value;
            }

            var CoffeeOrder = new CoffeeOrder(Guid.NewGuid().ToString(), DateTime.Now, Coffee.Name);

            CoffeeOrders.Add(CoffeeOrder);
            return(CoffeeOrder);
        }
Example #15
0
        /// <summary>
        /// 创建订单
        /// </summary>
        /// <param name="ord"></param>
        /// <returns></returns>
        public OrderGroupResult CreateOrder(CoffeeOrder ord)
        {
            if (ord == null)
            {
                throw new ArgumentNullException("order");
            }
            var    s             = new OrderManager();
            string orderDescribe = "";
            //验证产品单价
            var list       = ObjectXmlSerializer.LoadFromXml <List <CoffeeInit> >(System.Web.HttpContext.Current.Server.MapPath("~/cache/Coffee.xml"));
            var ordDetails = ord.DrinkList.GroupBy(o => o.Value).Select(o => (new Drink()
            {
                Name = o.Min(item => item.Name),
                Value = o.Key,
                Number = o.Sum(item => item.Number),
                Price = o.Sum(item => item.Number * item.Price),
                Materials = null
            }));

            foreach (var item in ordDetails)
            {
                if (item.Price != list[0].DrinkList.Find(o => o.Value == item.Value).Price *item.Number)
                {
                    throw new Exception("产品单价有误!");
                }
                orderDescribe  = orderDescribe == "" ? orderDescribe : orderDescribe + "@#";
                orderDescribe += String.Format("名称:{0}@#金额:{1}元@#数量:{2}", item.Name, item.Price, item.Number);
            }
            //验证订单金额金额
            if (ord.TotalAmount != ord.DrinkList.Sum(o => o.Price * o.Number) + ord.Fee)
            {
                throw new Exception("订单金额有误!");
            }
            var orderinfo = new OrderInfo
            {
                memberId      = ord.MemberId,
                message       = "",
                orderAmount   = ord.Amount.ToString(CultureInfo.InvariantCulture),
                orderDescribe = orderDescribe,
                orderFrom     = ord.OrderFrom.ToString(),
                orderType     = OrderType.ToString(),
                storeId       = this.GetStoreInfo().StoreId,
                storeName     = this.GetStoreInfo().StoreName,
                totalAmount   = (ord.TotalAmount).ToString(CultureInfo.InvariantCulture),
                orderEtm      = ord.OrderETMID,
                deleiveryFee  = ord.Fee,
                memberName    = ord.MemberName
            };
            var mresult = s.CreateOrder(orderinfo);

            Logger.Write(Log.Log_Type.Info, string.Format("主订单创建成功,order={0}", JsonConvert.SerializeObject(mresult)));
            var context = new CoffeeOrderContext();

            for (int i = 0; i < ord.DrinkList.Count; i++)
            {
                var item         = ord.DrinkList[i];
                var coffeeDetail = new BM_COFFEE_DETAIL()
                {
                    ORDER_ID        = mresult.dataMap.orderId,
                    ID              = mresult.dataMap.orderId + i.ToString(),
                    ADD_FEE         = 0,
                    AMOUNT          = item.Number * item.Price,
                    CAPACITY        = item.Capacity,
                    COFFEE_TYPE     = item.Value,
                    COFFEE_TYPENAME = item.Name,
                    CREATE_DATE     = DateTime.Now,
                    PRICE           = item.Price,
                    DESCRIPTION     = "",
                    QUANTITY        = item.Number,
                    TOTAL           = item.Number * item.Price,
                    MATERIALS       = JsonConvert.SerializeObject(item.Materials),
                    ISSUED          = 0
                };
                Logger.Write(Log.Log_Type.Info, string.Format("订单详情,Detail={0}", JsonConvert.SerializeObject(coffeeDetail)));
                context.BM_COFFEE_DETAIL.Add(coffeeDetail);
            }
            context.SaveChanges();
            OrderGroupResult result = new OrderGroupResult();

            result.GroupId = mresult.dataMap.orderId;
            result.Items   = new List <OrderItemResult>();
            result.Items.Add(new OrderItemResult()
            {
                Amount    = ord.TotalAmount,
                ItemName  = orderinfo.orderDescribe,
                OrderId   = mresult.dataMap.orderId,
                Qty       = ord.Quantity,
                StoreId   = orderinfo.storeId,
                StoreName = orderinfo.storeName
            });
            result.TotalAmount = ord.TotalAmount;
            return(result);
        }
Example #16
0
        public decimal CompleteOrder()
        {
            _coffeeOrder = null;

            return(DispenseChange());
        }
Example #17
0
 public void CancelCurrentCup()
 {
     _currentCup = null;
 }
 public void SaveCoffee(CoffeeOrder coffee)
 {
     db.Entry(coffee).State = System.Data.Entity.EntityState.Added;
     db.SaveChanges();
 }