// Encoder -- turns OrderObject into a CSV string public String Encoder(OrderObject order) { String orderStr = null; // build CSV String orderStr = order.getBookStoreId().ToString();; orderStr += "," + order.getCardNo().ToString(); orderStr += "," + order.getPublisherId().ToString(); orderStr += "," + order.getAmount().ToString(); orderStr += "," + order.getUnitPrice().ToString(); orderStr += "," + order.getTimestamp(); orderStr += "," + order.getTicks().ToString(); return(orderStr); // return the encoded string just created. }
//Thread entry point for OrderProcessing object public static void OrderProcessingThread(OrderObject obj) { //Validate the credit card number if (obj.getCardNo() > 6000 || obj.getCardNo() < 5000) { Console.WriteLine("OrderProcessingThread found an invalid credit card number, order not processed."); return; } //Calculate total price double totalPrice = obj.getAmount() * obj.getUnitPrice() //Unit price multiplied by total quantity of books ordered + obj.getAmount() * obj.getUnitPrice() * TAX_RATE //Add tax rate + (obj.getBookStoreId() * SHIPPING_PREMIUM); //Add shipping cost, assumed higher numbered bookstores are further away //Initiate event signifying order was processed orderComplete(obj.getBookStoreId(), obj.getPublisherId(), obj.getAmount(), obj.getUnitPrice(), totalPrice, obj.getTicks(), DateTime.Now.Ticks); }