public void GetBestPrice_Selling_UnsuitableBalanceException() { decimal sellAmount = 4M; Order sellOrder = new SellingOrder(sellAmount); Assert.Throws <Exception>(() => _marketHandler.ProcessOrder(sellOrder)); }
public VMachine() { InitializeComponent(); currentVisitor = null; newSellOrder = null; rfidVM = new RFID(); rfidVM.Tag += rfidVM_Reader; LatitudeVM = new DataForEvent(1); LatitudeVM.SyncEventInfo(); myVM = LatitudeVM.MyEvent.GetShopById(5); // This is vending machine id 5 itemsForVM = new List <EventItem>(); int count = 0; foreach (EventItem i in LatitudeVM.MyEvent.Items) { if (i is ItemForSale) { if (((ItemForSale)i).IsSuitableForVM) { itemsForVM.Add(i); count++; if (i.QuantityInStock > 0) { cbSelectItemVM.Items.Add(count); } } } } GeneratePictureBox(itemsForVM, tabVM); GenerateLabel(itemsForVM, tabVM); }
public void GetBestPrice_Selling_NegativeAmountException() { decimal sellAmount = -1M; Order sellOrder = new SellingOrder(sellAmount); Assert.Throws <Exception>(() => _marketHandler.ProcessOrder(sellOrder)); }
public void GetBestPrice_Selling_EqualTrue() { decimal sellAmount = 1M; Order sellOrder = new SellingOrder(sellAmount); BestPrice bestSell = _marketHandler.ProcessOrder(sellOrder); Assert.Equal(bestSell.price, 690M); }
private void ExecuteSellingOrderAction(int colorId, int sizeId, int quantity, Customer selectedCustomer, Clothes selectedClothes, Rate rate) { int customerId = selectedCustomer.Id; int clothesId = selectedClothes.Id; string clothesName = selectedClothes.Name; Console.WriteLine("# Create selling order: "); var newOrder = new SellingOrder { SupplierId = selectedClothes.SupplierId, CustomerId = customerId, Status = OrderStatus.New, OrderDate = DateTime.Now }; Console.WriteLine($"+ New selling order - Id: {newOrder.Id}, Order date: {newOrder.OrderDate}, CustomerId Id: {customerId}, CustomerId Name: {selectedCustomer.Name}"); var tempSellingOrders = _dataProvider.sellingOrders.GetAll(); var tempSellingOrderDetail = _dataProvider.sellingOrderDetails.GetAll(); Console.WriteLine("+ Save temp order"); TransactionProvider.ExecuteOperationInTransaction(() => { int newOrderId = tempSellingOrders.Add <SellingOrder>(newOrder); var sellingRateByClothes = _dataProvider.clothesRates.GetBy(x => x.ClothesId == selectedClothes.Id && x.RateId == rate.Id).FirstOrDefault(); if (sellingRateByClothes == null) { throw new Exception("Selling rate does not exist for clothes"); } Console.WriteLine("# Create selling order detail"); var newOrderDetail = new SellingOrderDetail { OrderId = newOrderId, ClothesId = clothesId, ColorId = colorId, SizeId = sizeId, Quantity = quantity, TotalPrice = quantity * sellingRateByClothes.Price }; tempSellingOrderDetail.Add(newOrderDetail); Console.WriteLine($"+ New selling order detail - OrderId: {newOrderDetail.OrderId}, Clothes Id: {clothesId}, Clothes Name: {clothesName}, Quantity: {newOrderDetail.Quantity}, TotalPrice: {newOrderDetail.TotalPrice}"); }); Console.WriteLine("+ Save actual order"); _dataProvider.sellingOrders = tempSellingOrders; _dataProvider.sellingOrderDetails = tempSellingOrderDetail; Console.WriteLine("+ Approve order and add to stock"); }
static void Main(string[] args) { MetaMarketHandler marketHandler = new MetaMarketHandler(); decimal amount = 4.25M; Order buyOrder = new BuyingOrder(amount); BestPrice bestBuy = marketHandler.ProcessOrder(buyOrder); Console.WriteLine(bestBuy); // without data resetting, previous sell/buy will impact on future results marketHandler.ResetData(); // if we wanna re-gather data and reset existing balances decimal sellAmount = 1.67M; Order sellOrder = new SellingOrder(sellAmount); BestPrice bestSell = marketHandler.ProcessOrder(sellOrder); Console.WriteLine(bestSell); }
private void rfidVM_Reader(object sender, RFIDTagEventArgs e) { if (e.Tag != null) { currentVisitor = LatitudeVM.MyEvent.GetVisitorByRfid(e.Tag); if (currentVisitor != null) { tbCustomerName.Text = currentVisitor.FirstName + " " + currentVisitor.LastName; tbBalance.Text = string.Format("€{0:n2}", currentVisitor.Balance); cbSelectItemVM.Enabled = true; newSellOrder = new SellingOrder(LatitudeVM.GetNextOrderNumber() + 1, currentVisitor, myVM); rfidVM.Close(); } else { MessageBox.Show("Cannot recognize visitor with this RFID tag"); } } }
//Map from Entity to Dto public static SellingOrderDto MappingDto(this SellingOrder sellingOrder) { return(new SellingOrderDto { Id = sellingOrder.Id, CustomerId = sellingOrder.CustomerId, Customer = new CustomerDto() { Id = sellingOrder.Customer.Id, Fullname = sellingOrder.Customer.Fullname }, EmployeeId = sellingOrder.EmployeeId, Employee = new EmployeeDto() { Id = sellingOrder.Employee.Id, Fullname = sellingOrder.Employee.Fullname }, CreatedDate = sellingOrder.CreatedDate, Status = sellingOrder.Status, TotalPrice = sellingOrder.TotalPrice, NameCode = sellingOrder.NameCode }); }