public override string handlePOSTRequest(HttpProcessor p, StreamReader inputData) { Console.WriteLine("POST request: {0}", p.http_url); string xml_data = inputData.ReadToEnd(); //xml_data now contains XML from application XmlHandler xparser = new XmlHandler(); Tuple<String, LinkedList<String>> parsed_info = xparser.getXmlParse(xml_data); //parsed_info contains method name and values of args string method_name = parsed_info.Item1; LinkedList<string> args_list = parsed_info.Item2; //switch declarations int forum_id = 0; int sub_forum_id = 0; LinkedList<Tuple<string, string>> xarguments_list = new LinkedList<Tuple<string, string>>(); string username = null; string password = null; Tuple<string, string> succ_tuple = new Tuple<string, string>("", ""); Tuple<string, string> msg_tuple = new Tuple<string, string>("", ""); string response_xml = null; method_name.ToLower(); switch (method_name) { case "login": forum_id = Convert.ToInt32(args_list.ElementAt(0)); username = args_list.ElementAt(1); password = args_list.ElementAt(2); Tuple<string, string> login_success_usertype = _forum_gen.login(forum_id, username, password); succ_tuple = new Tuple<string,string>("success", login_success_usertype.Item1); if (login_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", login_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", login_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "logout": forum_id = Convert.ToInt32(args_list.ElementAt(0)); int user_id = Convert.ToInt32(args_list.ElementAt(1)); Tuple<string, string> logout_success_usertype = _forum_gen.logout(forum_id, user_id); succ_tuple = new Tuple<string, string>("success", logout_success_usertype.Item1); if (logout_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", logout_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", logout_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "adminlogin": username = args_list.ElementAt(0); password = args_list.ElementAt(1); Tuple<string, string> admin_login_success_usertype = _forum_gen.adminLogin(username, password); succ_tuple = new Tuple<string, string>("success", admin_login_success_usertype.Item1); if (admin_login_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", admin_login_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", admin_login_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "adminlogout": Tuple<string, string> admin_logout_success_usertype = _forum_gen.adminLogout(); succ_tuple = new Tuple<string, string>("success", admin_logout_success_usertype.Item1); if (admin_logout_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", admin_logout_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", admin_logout_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "register": forum_id = Convert.ToInt32(args_list.ElementAt(0)); username = args_list.ElementAt(1); password = args_list.ElementAt(2); string email = args_list.ElementAt(3); string signature = args_list.ElementAt(4); Tuple<string, string> register_success_usertype = _forum_gen.register(forum_id, username, password, email, signature); succ_tuple = new Tuple<string,string>("success", register_success_usertype.Item1); if (register_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", register_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", register_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "createnewforum": username = args_list.ElementAt(0); password = args_list.ElementAt(1); string forum_name = args_list.ElementAt(2); string admin_username = args_list.ElementAt(3); string admin_password = args_list.ElementAt(4); Tuple<string, string> createnewforum_success_usertype = _forum_gen.createNewForum(username, password, forum_name, admin_username, admin_password); succ_tuple = new Tuple<string, string>("success", createnewforum_success_usertype.Item1); if (createnewforum_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", createnewforum_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", createnewforum_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "createnewsubforum": username = args_list.ElementAt(0); password = args_list.ElementAt(1); forum_id = Convert.ToInt32(args_list.ElementAt(2)); string sub_forum_title = args_list.ElementAt(3); Tuple<string, string> createnewsubforum_success_usertype = _forum_gen.createNewSubForum(username, password, forum_id, sub_forum_title); succ_tuple = new Tuple<string, string>("success", createnewsubforum_success_usertype.Item1); if (createnewsubforum_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", createnewsubforum_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", createnewsubforum_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "createnewdiscussion": username = args_list.ElementAt(0); password = args_list.ElementAt(1); forum_id = Convert.ToInt32(args_list.ElementAt(2)); sub_forum_id = Convert.ToInt32(args_list.ElementAt(3)); string discussion_title = args_list.ElementAt(4); string discussion_content = args_list.ElementAt(5); Tuple<string, string> createnewdiscussion_success_usertype = _forum_gen.createNewDiscussion(username, password, forum_id, sub_forum_id, discussion_title, discussion_content); succ_tuple = new Tuple<string, string>("success", createnewdiscussion_success_usertype.Item1); if (createnewdiscussion_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", createnewdiscussion_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", createnewdiscussion_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; case "createnewcomment": username = args_list.ElementAt(0); password = args_list.ElementAt(1); forum_id = Convert.ToInt32(args_list.ElementAt(2)); sub_forum_id = Convert.ToInt32(args_list.ElementAt(3)); int discussion_id = Convert.ToInt32(args_list.ElementAt(4)); string comment_content = args_list.ElementAt(5); Tuple<string, string> createnewcomment_success_usertype = _forum_gen.createNewComment(username, password, forum_id, sub_forum_id, discussion_id, comment_content); succ_tuple = new Tuple<string, string>("success", createnewcomment_success_usertype.Item1); if (createnewcomment_success_usertype.Item1 == "1") msg_tuple = new Tuple<string, string>("UserType", createnewcomment_success_usertype.Item2); //success on login else msg_tuple = new Tuple<string, string>("ErrorMsg", createnewcomment_success_usertype.Item2); //failure on login xarguments_list.AddLast(succ_tuple); xarguments_list.AddLast(msg_tuple); response_xml = xparser.cCreateXml(method_name, xarguments_list); break; default: break; } return response_xml; }