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); }
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); }
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()); } }
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); }