コード例 #1
0
ファイル: LotteryTicketSlave.cs プロジェクト: maorRoz/Sadna
        public Order BuyLotteryTicket(string itemName, string store, int quantity, double unitPrice, string UserName,
                                      string UserAddress, string CreditCard)
        {
            if (UserName == null)
            {
                UserName = _buyer.GetName();
            }
            if (UserAddress == null)
            {
                UserAddress = _buyer.GetAddress();
            }
            if (CreditCard == null)
            {
                CreditCard = _buyer.GetCreditCard();
            }
            int orderId = 0;

            try
            {
                MarketLog.Log("OrderPool", "Attempting to buy " + quantity + " tickets for lottery sale of " + itemName +
                              " from store " + store + "...");
                ValidateRegisteredUser();
                _storesSync.ValidateTicket(itemName, store, unitPrice);
                OrderItem ticketToBuy = new OrderItem(store, null, itemName, unitPrice, quantity);
                Order     order       = CreateOrderOneItem(ticketToBuy, UserName, UserAddress);
                orderId = order.GetOrderID();
                ProcessOrder(order, CreditCard);
                _storesSync.UpdateLottery(itemName, store, unitPrice, UserName, cheatCode);
                MarketLog.Log("OrderPool", "User " + UserName + " successfully bought lottery ticket.");
                Answer = new OrderAnswer(OrderStatus.Success, "Successfully bought Lottery ticket ");
                _publisher.NotifyClientBuy(store, itemName);
                return(order);
            }
            catch (OrderException e)
            {
                MarketLog.Log("OrderPool",
                              "Order " + orderId + " has failed to execute. Error message has been created!");
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }
            catch (WalleterException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with payment system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((WalleterStatus)e.Status, e.GetErrorMessage());
            }
            catch (SupplyException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with supply system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((SupplyStatus)e.Status, e.GetErrorMessage());
            }
            catch (DataException e)
            {
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }

            return(null);
        }
コード例 #2
0
        public Order BuyEverythingFromCart(string[] coupons, string UserName, string UserAddress, string CreditCard)
        {
            if (UserName == null)
            {
                UserName = _buyer.GetName();
            }
            if (UserAddress == null)
            {
                UserAddress = _buyer.GetAddress();
            }
            if (CreditCard == null)
            {
                CreditCard = _buyer.GetCreditCard();
            }
            int orderId = 0;

            try
            {
                MarketLog.Log("OrderPool", "Attempting to buy everything in cart...");
                Order order = CreateOrderAllCart(UserName, UserAddress, coupons);
                orderId = order.GetOrderID();
                CheckPurchasePolicy(order);
                ProcessOrder(order, CreditCard);
                EmptyCart();
                MarketLog.Log("OrderPool", "User " + UserName + " successfully bought all the items in the cart.");
                Answer = new OrderAnswer(OrderStatus.Success, "Successfully bought all the items in the cart.");
                return(order);
            }
            catch (OrderException e)
            {
                MarketLog.Log("OrderPool",
                              "Order " + orderId + " has failed to execute. Error message has been created!");
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }
            catch (WalleterException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with payment system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((WalleterStatus)e.Status, e.GetErrorMessage());
            }
            catch (SupplyException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with supply system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((SupplyStatus)e.Status, e.GetErrorMessage());
            }
            catch (DataException e)
            {
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }

            return(null);
        }
コード例 #3
0
ファイル: ValidateDetailsSlave.cs プロジェクト: maorRoz/Sadna
 public void GiveDetails(string userName, string address, string creditCard)
 {
     try
     {
         MarketLog.Log("OrderPool",
                       "User entering name and address for later usage in market order. validating data ...");
         IsValidUserDetails(userName, address, creditCard);
         MarketLog.Log("OrderPool",
                       "Validation has been completed. User name and address are valid and been updated");
         Answer = new OrderAnswer(GiveDetailsStatus.Success,
                                  "User name and address has been updated successfully!");
     }
     catch (OrderException e)
     {
         Answer = new OrderAnswer(GiveDetailsStatus.InvalidNameOrAddress, e.GetErrorMessage());
     }
     catch (DataException e)
     {
         Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
     }
 }
コード例 #4
0
        public Order BuyItemFromImmediate(string itemName, string store, int quantity, double unitPrice, string coupon,
                                          string UserName, string UserAddress, string CreditCard)
        {
            if (UserName == null)
            {
                UserName = _buyer.GetName();
            }
            if (UserAddress == null)
            {
                UserAddress = _buyer.GetAddress();
            }
            if (CreditCard == null)
            {
                CreditCard = _buyer.GetCreditCard();
            }
            int orderId = 0;

            try
            {
                MarketLog.Log("OrderPool",
                              "Attempting to buy " + quantity + " " + itemName + " from store " + store + " in immediate sale...");
                OrderItem toBuy = CheckoutItem(itemName, store, quantity, unitPrice);
                if (coupon != null)
                {
                    toBuy.Price = _storesSync.GetPriceFromCoupon(itemName, store, quantity, coupon);
                }
                Order order = CreateOrderOneItem(toBuy, UserName, UserAddress);
                orderId = order.GetOrderID();
                CheckPurchasePolicy(order);
                ProcessOrder(order, CreditCard);
                RemoveItemFromCart(itemName, store, quantity, unitPrice);
                MarketLog.Log("OrderPool",
                              "User " + UserName + " successfully bought item " + itemName + "in an immediate sale.");
                Answer = new OrderAnswer(OrderStatus.Success, "Successfully bought item " + itemName);
                _publisher.NotifyClientBuy(store, itemName);
                return(order);
            }
            catch (OrderException e)
            {
                MarketLog.Log("OrderPool",
                              "Order " + orderId + " has failed to execute. Error message has been created!");
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }
            catch (WalleterException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with payment system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((WalleterStatus)e.Status, e.GetErrorMessage());
            }
            catch (SupplyException e)
            {
                MarketLog.Log("OrderPool", "Order " + orderId +
                              " has failed to execute while communicating with supply system." +
                              " Error message has been created!");
                Answer = new OrderAnswer((SupplyStatus)e.Status, e.GetErrorMessage());
            }
            catch (DataException e)
            {
                Answer = new OrderAnswer((OrderStatus)e.Status, e.GetErrorMessage());
            }

            return(null);
        }