/// <summary> /// Finish tsk: Delete the Tsk from the TSk DB, and add the coin and exp to the users /// </summary> /// <param name="msg">inputMessage: getWay = "finishTsk" and arugment: "name","id"(tskid)</param> /// <returns>string(outputMessage)</returns> public string finishTsk(string msg) { inputMessage input = new inputMessage(msg); outputMessage output = new outputMessage(); MySqlConnection sqlConn = GetSqlConn(); try { sqlConn.Open(); } catch (Exception ex) { Console.WriteLine(ex.Message); output.addErrorMsg("takeTsk: Connection between mysql doesn't work correctly"); output.addSuccess(false); return(output.getString()); } string taker = input.getArg("name"); string id_ = input.getArg("id"); int id = Convert.ToInt32(id_); string owner = getOwner8id(id_); string opt = getDetailsTsk(id_); outputMessage optMsg = new outputMessage(opt); Dictionary <string, Dictionary <string, string> > resultId = optMsg.getResult(); string takerNow = resultId["0"]["taker"]; if (!takerNow.Equals("None_taker")) { output.addSuccess(false); output.addErrorMsg("We have already have someone to take the story"); return(output.getString()); } Tuple <int, int> CoinExp = getTsk8id(id_); int coin = CoinExp.Item1; int exp = CoinExp.Item2; addCoin(taker, coin.ToString()); addCoin(owner, (0 - coin).ToString()); addExp(taker, exp.ToString()); deleteTsk(id_); output.addSuccess(true); return(output.getString()); }
public void sqlTest() { Console.WriteLine(">>>>>>>>>>>>>testing searchUsr>>>>>>>>>>>>>>>\n"); inputMessage ipt = new inputMessage(); ipt.addWay("searchUsr"); ipt.addArg("name", "test"); ipt.addArg("pwd", "pwd"); string msg = ipt.getString(); string opt = recvMsg(msg); Console.WriteLine("\n\n" + opt + "\n\n"); outputMessage optMsg = new outputMessage(opt); if (optMsg.getSuccess()) { var result = optMsg.getResult(); foreach (KeyValuePair <string, Dictionary <string, string> > itr in result) { string ans = itr.Key + "\n"; foreach (KeyValuePair <string, string> subitr in itr.Value) { ans += subitr.Key + " " + subitr.Value + "\n"; } Console.WriteLine(ans); } } else { Console.WriteLine("we have some error " + optMsg.getErrorMsg()); } }
/* * string takeTsk(string msg) * * input msg is actually a inputMessage(I will do deserialize part): * way: "takeTsk" * argument [it is a dictionary]: * key(string) : value(string) * "id" : "XXXX" * "taker" : "nibaba" * * output msg(string) * * success: True (take Success) / False (take doesn't success) * ErrorMessage (if False) : will have the reason why it is false); */ public string takeTsk(string msg) { inputMessage input = new inputMessage(msg); outputMessage output = new outputMessage(); MySqlConnection sqlConn = GetSqlConn(); try { sqlConn.Open(); } catch (Exception ex) { Console.WriteLine(ex.Message); output.addErrorMsg("takeTsk: Connection between mysql doesn't work correctly"); output.addSuccess(false); return(output.getString()); } int id = Convert.ToInt32(input.getArg("id")); string taker = input.getArg("taker"); string owner = getOwner8id(id.ToString()); if (owner.Equals(taker)) { output.addSuccess(false); output.addErrorMsg("you can not take your own task"); return(output.getString()); } Console.WriteLine("check the taker"); string opt = getDetailsTsk(input.getArg("id")); outputMessage optMsg = new outputMessage(opt); Dictionary <string, Dictionary <string, string> > resultId = optMsg.getResult(); string takerNow = resultId["0"]["taker"]; if (!takerNow.Equals("None_taker")) { output.addSuccess(false); output.addErrorMsg("We have already have someone to take the story"); return(output.getString()); } try { String strUsr = "******"; MySqlCommand instUsr = new MySqlCommand(strUsr, sqlConn); instUsr.Parameters.AddWithValue("@id", id); instUsr.Parameters.AddWithValue("@taker", taker); instUsr.ExecuteNonQuery(); sqlConn.Close(); output.addSuccess(true); } catch (Exception ex) { sqlConn.Close(); Console.WriteLine("UPDATE tsk taker may can not work"); Console.WriteLine(ex.ToString()); output.addSuccess(false); output.addErrorMsg("UPDATE tsk taker may can not work"); } return(output.getString()); }