static void ProcessAnswer(Answer answer) { switch (answer.msgtype) { case Answer.MsgType.Error: Console.WriteLine("Session error in answer {0}: #{1} {2}", answer.id, answer.number, (string)answer.obj); break; case Answer.MsgType.Failure: Console.WriteLine("Request error in answer {0}: #{1} {2}", answer.id, answer.number, (string)answer.obj); break; case Answer.MsgType.Result: switch ((AnswerId)answer.id) { case AnswerId.CustomerInsertedObj: { if (answer.obj == null) { Console.WriteLine("Got unexpected empty answer. Expected InsertedCustomer object not null"); } else { CustomerInserted customer = (CustomerInserted)answer.obj; Console.WriteLine("Answer {0}: #{2} Id {1} Name {3} Address {4}", answer.id, answer.number, customer.Id, customer.Name, customer.Address); } } break; default: Console.WriteLine("Request error: unknown aswer type: {0} #{1}", answer.id, answer.number); break; } break; } }
/* Fake method for change password session */ private static void FakeProcessAnswer(Answer answer) { }
private void ClearRequestQueue(string errstr) { bool empty = false; while (!empty) { try { Request request = m_requestqueue.Dequeue(); Answer answer = new Answer { msgtype = Answer.MsgType.Error, id = m_request.id, content = errstr }; m_processAnswer(answer); } catch (InvalidOperationException) { //... done empty = true; } } }