コード例 #1
0
        /// <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());
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
        /*
         * 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());
        }