//converts order object into an xml string public static string Encode(OrderClass order) { String encoded; XmlSerializer ser = new XmlSerializer(typeof(OrderClass)); using (StringWriter writer = new StringWriter()) { ser.Serialize(writer, order); encoded = writer.ToString(); } //Console.WriteLine("CODED CODED CODED "+encoded); return(encoded); }
//Processes the order by retrieving the decoded object, creates a new thread to process order public void decodeprocess() { string order = Program.buffer.getOneCell(); OrderClass order2 = Decoder.Decode(order); Thread thread = new Thread(() => OrderProcessing.process(order2, getPrice())); processingThreads.Add(thread); thread.Start(); //USED FOR TESTING // Console.WriteLine("ADDED TO BUFFER" + order2.ToString()); //Console.WriteLine(getPrice() + " WHAT IS SENT TO PROCESS"); }
/// Called once the TravelAgency thread has come back from sleeping. To create an order by encoding the order object and adding to buffer. private void CreateOrder(int rooms) { // Tell system no order is needed roomsNeeded = false; //Create order object OrderClass order = new OrderClass(); order.Rooms = rooms; int travelId = Convert.ToInt32(Thread.CurrentThread.Name); agencyID = travelId; order.SenderId = travelId; order.CardNo = creditsample[travelId - 1]; start = DateTime.Now; Program.buffer.setOneCell(Encoder.Encode(order)); }