private static void EachRequest() { RequestBefore(); string inputS = GetRequest(); CmdInputStruct cmdInput = SplitRequest(inputS); if (cmdInput.argvLst.Count <= 0) { return; } CmdInterface cmdI; switch (cmdInput.argvLst[0]) { case CmdRegister: cmdI = new CmdRegister(cmdInput); break; case CmdCreateListing: cmdI = new CmdCreateListing(cmdInput); break; case CmdGetListing: cmdI = new CmdGetListing(cmdInput); break; case CmdGetCategory: cmdI = new CmdGetCategory(cmdInput); break; case CmdDeleteListing: cmdI = new CmdDeleteListing(cmdInput); break; case CmdGetTopCategory: cmdI = new CmdGetTopCategory(cmdInput); break; default: cmdI = new CmdDefault(cmdInput); break; } Response resp = cmdI.HandleCmd(); Console.WriteLine("{0}", resp.resultStr); }
private static CmdInputStruct SplitRequest(string s) { string pattern = @"\w+|'[^']+'"; Regex rgx = new Regex(pattern); List <string> argvLst = new List <string>(); foreach (Match match in rgx.Matches(s)) { var ss = match.Value; if (ss.Length > 0 && ss[0] == '\'') { ss = ss.Substring(1, ss.Length - 2); } argvLst.Add(ss); } CmdInputStruct cmdInput = new CmdInputStruct(s, argvLst); return(cmdInput); }