Exemplo n.º 1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (nameTb.Text == "" || idTb.Text == "" || pwPb.Password == "")
            {
                MessageBox.Show("칸을 모두 채워주세요.", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            var MyRead = MysqlConn.ExecuteQuery("select id from user where id='" + idTb.Text + "'");

            if (MyRead.Read())
            {
                MessageBox.Show("이미 존재하는 아이디입니다.", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            int a = MysqlConn.ExecuteNonQuery("insert into user value('" + nameTb.Text + "', '" + idTb.Text + "', '" + MainWindow.Sha512Hash(pwPb.Password) + "')");

            if (a == 1)
            {
                MessageBox.Show("회원가입 성공", "알림", MessageBoxButton.OK);
                this.Visibility = Visibility.Collapsed;
            }
            else
            {
                MessageBox.Show("회원가입 실패", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Exemplo n.º 2
0
        private void LoginBtn_Click(object sender, RoutedEventArgs e)
        {
            if (idTb.Text == "" || pwPb.Password == "")
            {
                MessageBox.Show("아이디 또는 비밀번호를 입력하세요.", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            var MyRead = MysqlConn.ExecuteQuery("select name from user where id='" + idTb.Text + "' and pw='" + Sha512Hash(pwPb.Password.ToString()) + "'");

            if (MyRead.Read())
            {
                userName = MyRead["name"].ToString();
                MessageBox.Show(userName + "님 환영합니다!", "알림", MessageBoxButton.OK);
                MyRead.Close();

                ShowMealCtrl.Visibility = Visibility.Visible;
                //로그인 성공 이후 로직 구현.
                InitData();
            }
            else
            {
                MessageBox.Show("로그인에 실패하였습니다.", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
                MyRead.Close();
                return;
            }
        }
Exemplo n.º 3
0
        private void GetMenu(int mealType)
        {
            var    myRead     = MysqlConn.ExecuteQuery("select * from meal natural join food where meal_date = '" + DateTime.Now.ToShortDateString() + "' and meal_type=" + mealType + ";");
            string menuString = "";

            while (myRead.Read())
            {
                menuString += myRead["food_info"] + "\n";
            }

            if (menuString == "")
            {
                return;
            }

            switch (mealType)
            {
            case 1:
                type1Tb.Text = menuString;
                break;

            case 2:
                type2Tb.Text = menuString;
                break;

            case 3:
                type3Tb.Text = menuString;
                break;
            }
            return;
        }
Exemplo n.º 4
0
        public override void Save(JToken jObject, string path)
        {
            foreach (JObject j in jObject)
            {
                Dictionary <string, string> selectWhere = new Dictionary <string, string>();
                selectWhere.Add("addr", j["address"].ToString());
                DataTable dt = MysqlConn.ExecuteDataSet("address", selectWhere).Tables[0];
                if (dt.Rows.Count != 0)
                {
                    Dictionary <string, string> dirs = new Dictionary <string, string>();
                    dirs.Add("lastuse", Helper.blockTime.ToString());
                    dirs.Add("txcount", (int.Parse(dt.Rows[0]["txcount"].ToString()) + 1) + "");
                    Dictionary <string, string> where = new Dictionary <string, string>();
                    where.Add("addr", dt.Rows[0]["addr"].ToString());
                    MysqlConn.Update("address", dirs, where);
                }
                else
                {
                    JObject result = new JObject();
                    result["addr"]     = j["address"];
                    result["firstuse"] = Helper.blockTime;
                    result["lastuse"]  = Helper.blockTime;
                    result["txcount"]  = 1;

                    List <string> slist = new List <string>();
                    slist.Add(j["address"].ToString());
                    slist.Add(Helper.blockTime.ToString());
                    slist.Add(Helper.blockTime.ToString());
                    slist.Add("1");
                    MysqlConn.ExecuteDataInsert("address", slist);
                }
            }
        }
Exemplo n.º 5
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            int mealIdx = 0;
            int a       = MysqlConn.ExecuteNonQuery("insert into meal(meal_date, meal_type) values('" + DateTime.Now.ToShortDateString() + "', " + mealType + ");");
            //mealIdx 찾아서 insert
            var myRead = MysqlConn.ExecuteQuery("select meal_idx from meal where meal_date ='" + DateTime.Now.ToShortDateString() + "' and meal_type = " + mealType + ";");

            if (myRead.Read())
            {
                mealIdx = Int32.Parse(myRead["meal_idx"].ToString());
            }

            if (mealIdx == 0)
            {
                //에러
                MessageBox.Show("알수없는 에러.", "알림", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            string[] temp = tempTb.Text.ToString().Split(',');
            for (int i = 0; i < temp.Length; i++)
            {
                int b = MysqlConn.ExecuteNonQuery("insert into food(food_info, meal_idx) values('" + temp[i] + "', " + mealIdx + ");");
            }
            MessageBox.Show("급식이 등록되었습니다.", "알림", MessageBoxButton.OK);
            tempTb.Text = "";
            UpdateMeal?.Invoke(mealType);
            this.Visibility = Visibility.Collapsed;
        }
Exemplo n.º 6
0
        public JsonResult Practice_example(long pqid)
        {
            var dbq  = db.paper_ques.Find(pqid);
            var back = dbq.question.qbase_chapter.background;

            DataSet[] res = null;
            if (back.db == "Kingbase")
            {
                var kingbaseconn = new KingbaseConn();
                res = kingbaseconn.ShowBackGround(back.name);
                kingbaseconn.Dispose();
            }
            else if (back.db == "Mysql")
            {
                var mysqlconn = new MysqlConn();
                res = mysqlconn.ShowBackGround(back.name);
                mysqlconn.Dispose();
            }
            else if (back.db == "MSSQL")
            {
                var mssqlconn = new MSSQLConn();
                res = mssqlconn.ShowBackGround(back.name);
                mssqlconn.Dispose();
            }
            else
            {
                res = new DataSet[0];
            }
            int count = res.Count();
            var tname = new List <string>();
            var datas = new List <object[]>();

            string[][] colnames = new string[count][];
            for (int i = 0; i < count; i++)
            {
                var ds       = res[i];
                var colcount = ds.Tables[0].Columns.Count;
                tname.Add(ds.DataSetName);
                colnames[i] = new string[colcount];
                int j = 0;
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    colnames[i][j] = new string(col.ColumnName.ToCharArray());
                    //colnames[i][j] += $"({col.GetType().ToString()})";
                    j++;
                }
                var data = ds.Tables[0].Rows[0].ItemArray;
                datas.Add(data);
            }
            var json = new {
                count,
                tname,
                datas,
                colnames
            };

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 7
0
        public override void Save(JToken jObject, string path)
        {
            JObject result = new JObject();

            result["txid"]       = jObject["txid"];
            result["size"]       = jObject["size"];
            result["type"]       = jObject["type"];
            result["version"]    = jObject["version"];
            result["attributes"] = jObject["attributes"];
            result["vin"]        = jObject["vin"];
            result["vout"]       = jObject["vout"];
            result["sys_fee"]    = jObject["sys_fee"];
            result["net_fee"]    = jObject["net_fee"];
            result["scripts"]    = jObject["scripts"];
            result["nonce"]      = jObject["nonce"];
            result["blockindex"] = Helper.blockHeight;

            List <string> slist = new List <string>();

            slist.Add(result["txid"].ToString());
            slist.Add(result["size"].ToString());
            slist.Add(result["type"].ToString());
            slist.Add(result["version"].ToString());
            slist.Add(result["attributes"].ToString());
            slist.Add(result["vin"].ToString());
            slist.Add(result["vout"].ToString());
            slist.Add(result["sys_fee"].ToString());
            slist.Add(result["net_fee"].ToString());
            slist.Add(result["scripts"].ToString());
            slist.Add(result["nonce"].ToString());
            slist.Add(Helper.blockHeight.ToString());
            MysqlConn.ExecuteDataInsert("tx", slist);

            //File.Delete(path);
            //File.WriteAllText(path, result.ToString(), Encoding.UTF8);

            SaveAddress.getInstance().Save(result["vout"], null);

            SaveUTXO.getInstance().Save(result, null);

            var addressTransactionPath = "addressTransaction" + Path.DirectorySeparatorChar + result["txid"] + ".txt";

            SaveAddressTransaction.getInstance().Save(result, addressTransactionPath);

            if (result["type"].ToString() == "RegisterTransaction")
            {
                var assetPath = "asset" + Path.DirectorySeparatorChar + result["txid"] + ".txt";
                saveAsset(jObject, assetPath);
            }
            else if (result["type"].ToString() == "InvocationTransaction")
            {
                SaveNotify.getInstance().Save(result, null);
            }
        }
Exemplo n.º 8
0
        public Tuple <double, string> Judge_sql(question q, background back, string ans)
        {
            string username = (string)Session["account"];

            ans = ans.ToUpper();
            if (ans == "")
            {
                return(new Tuple <double, string>(0, "空字符"));
            }
            if (ans.Last() == ';')
            {
                ans = ans.Remove(ans.Length - 1);
            }
            string back_name = back.name;
            var    res       = new Tuple <string, bool>("暂不支持该数据库", false);

            if (back.db == "Kingbase")
            {
                KingbaseConn conn = new KingbaseConn();
                res = conn.JudgeSql(username, q, ans, back_name);
                conn.Dispose();
            }
            else if (back.db == "Mysql")
            {
                MysqlConn conn = new MysqlConn(username);
                res = conn.JudgeSql($"Student_{username}", q, ans, back_name);
                conn.Dispose();
            }
            else if (back.db == "MSSQL")
            {
                MSSQLConn conn = new MSSQLConn(username);
                res = conn.JudgeSql($"Student_{username}", q, ans, back_name);
                conn.Dispose();
            }
            double score = 0;
            string exc   = "";

            if (res.Item2 == true)
            {
                score = q.totvalue;
                exc   = "congratulations!!";
                score = 10;
            }
            else
            {
                ans += "&exit";
                exc  = res.Item1;
                var Dic  = Server.MapPath("/flex");
                var path = Server.MapPath($"/flex/exe/question{q.id}.exe");
                score = double.Parse(tf.RunFlex(path, ans, Dic, username));
            }
            return(new Tuple <double, string>(score, exc));
        }
Exemplo n.º 9
0
        public override void Save(JToken jToken, string path)
        {
            string contract = jToken["assetid"].ToString();

            Dictionary <string, string> where = new Dictionary <string, string>();
            where.Add("assetid", contract);
            DataTable dt = MysqlConn.ExecuteDataSet("nep5asset", where).Tables[0];

            if (dt.Rows.Count == 0)
            {
                Start(contract);
            }
        }
Exemplo n.º 10
0
        public override void Save(JToken jToken, string path)
        {
            List <string> slist = new List <string>();

            slist.Add(jToken["blockindex"].ToString());
            slist.Add(jToken["txid"].ToString());
            slist.Add(jToken["n"].ToString());
            slist.Add(jToken["asset"].ToString());
            slist.Add(jToken["from"].ToString());
            slist.Add(jToken["to"].ToString());
            slist.Add(jToken["value"].ToString());
            MysqlConn.ExecuteDataInsert("nep5transfer", slist);
        }
Exemplo n.º 11
0
        public JsonResult Sub_Ans(string ans, long pqid, long cost, string ecid)
        {
            ans = ans.Replace("\r\n", " ");
            ans = ans.Replace("###", "select");
            ans = ans.Replace("!!!", "delete");
            long   id        = (long)Session["id"];
            string account   = (string)Session["account"];
            long   ec_id     = long.Parse(ecid);
            string username  = (string)Session["account"];
            var    dbq       = db.paper_ques.Find(pqid);
            var    q         = dbq.question;
            var    back      = q.qbase_chapter.background;
            string back_name = back.name;
            var    log       = new stu_ans_log();
            var    res       = new Tuple <string, bool>("", false);

            if (back.db == "Kingbase")
            {
                KingbaseConn conn = new KingbaseConn();
                res = conn.JudgeSql(username, q, ans, back_name);
                conn.Dispose();
            }
            else if (back.db == "Mysql")
            {
                MysqlConn conn = new MysqlConn(username);
                res = conn.JudgeSql($"Student_{username}", q, ans, back_name);
                conn.Dispose();
            }
            else if (back.db == "MSSQL")
            {
                MSSQLConn conn = new MSSQLConn(username);
                res = conn.JudgeSql($"Student_{username}", q, ans, back_name);
                conn.Dispose();
            }
            log.ans        = ans;
            log.paper_ques = dbq;
            log.stu_info   = db.stu_info.Find(id);
            log.wronginfo  = res.Item1;
            log.cost       = new TimeSpan(cost);
            log.exam_class = db.exam_class.Find(ec_id);
            Save_Ans(ans, pqid, res.Item2);
            db.stu_ans_log.Add(log);
            db.SaveChanges();
            var json = new {
                message = res.Item1,
                judge   = res.Item2
            };

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 12
0
        public void ChangeUTXO(string txid, string voutNum)
        {
            Dictionary <string, string> dirs = new Dictionary <string, string>();

            dirs.Add("used", "1");
            dirs.Add("useHeight", Helper.blockHeight.ToString());
            Dictionary <string, string> where = new Dictionary <string, string>();
            where.Add("txid", txid);
            where.Add("n", voutNum);
            MysqlConn.Update("utxo", dirs, where);

            //JObject result = JObject.Parse(File.ReadAllText(path, Encoding.UTF8));
            //result["used"] = 1;
            //result["useHeight"] = Helper.blockHeight;
            //File.WriteAllText(path, result.ToString(), Encoding.UTF8);
        }
Exemplo n.º 13
0
        public async Task getNEP5Asset(Hash160 Contract)
        {
            ScriptBuilder sb = new ScriptBuilder();

            MyJson.JsonNode_Array array = new MyJson.JsonNode_Array();
            sb.EmitParamJson(array);
            sb.EmitPushString("totalSupply");
            sb.EmitAppCall(Contract);

            sb.EmitParamJson(array);
            sb.EmitPushString("name");
            sb.EmitAppCall(Contract);

            sb.EmitParamJson(array);
            sb.EmitPushString("symbol");
            sb.EmitAppCall(Contract);

            sb.EmitParamJson(array);
            sb.EmitPushString("decimals");
            sb.EmitAppCall(Contract);

            string scriptPublish = ThinNeo.Helper.Bytes2HexString(sb.ToArray());

            byte[] postdata;
            var    url    = Helper.MakeRpcUrlPost(Helper.url, "invokescript", out postdata, new MyJson.JsonNode_ValueString(scriptPublish));
            var    result = await Helper.HttpPost(url, postdata);

            JObject jObject     = JObject.Parse(result);
            JArray  results     = jObject["result"]["stack"] as JArray;
            string  totalSupply = Encoding.UTF8.GetString(ThinNeo.Helper.HexString2Bytes(results[0]["value"].ToString()));
            string  name        = Encoding.UTF8.GetString(ThinNeo.Helper.HexString2Bytes(results[1]["value"].ToString()));
            string  symbol      = Encoding.UTF8.GetString(ThinNeo.Helper.HexString2Bytes(results[2]["value"].ToString()));
            string  decimals    = Encoding.UTF8.GetString(ThinNeo.Helper.HexString2Bytes(results[3]["value"].ToString()));

            List <string> slist = new List <string>();

            slist.Add(Contract.ToString());
            slist.Add(totalSupply);
            slist.Add(name);
            slist.Add(symbol);
            slist.Add(decimals);
            MysqlConn.ExecuteDataInsert("nep5asset", slist);
        }
Exemplo n.º 14
0
        public override void Save(JToken jObject, string path)
        {
            //JObject result = new JObject();
            //result["txid"] = jObject["txid"];
            //result["blockindex"] = Helper.blockHeight;
            //result["blocktime"] = Helper.blockTime;

            foreach (JObject vout in jObject["vout"])
            {
                List <string> slist = new List <string>();
                slist.Add(vout["address"].ToString());
                slist.Add(jObject["txid"].ToString());
                slist.Add(Helper.blockHeight.ToString());
                slist.Add(Helper.blockTime.ToString());
                MysqlConn.ExecuteDataInsert("address_tx", slist);
            }

            //File.Delete(path);
            //File.WriteAllText(path, result.ToString(), Encoding.UTF8);
        }
Exemplo n.º 15
0
        public override void Save(JToken jObject, string path)
        {
            JObject result = new JObject();

            result["hash"]              = jObject["hash"];
            result["size"]              = jObject["size"];
            result["version"]           = jObject["version"];
            result["previousblockhash"] = jObject["previousblockhash"];
            result["merkleroot"]        = jObject["merkleroot"];
            result["time"]              = jObject["time"];
            result["index"]             = jObject["index"];
            result["nonce"]             = jObject["nonce"];
            result["nextconsensus"]     = jObject["nextconsensus"];
            result["script"]            = jObject["script"];

            List <string> slist = new List <string>();

            slist.Add(jObject["hash"].ToString());
            slist.Add(jObject["size"].ToString());
            slist.Add(jObject["version"].ToString());
            slist.Add(jObject["previousblockhash"].ToString());
            slist.Add(jObject["merkleroot"].ToString());
            slist.Add(jObject["time"].ToString());
            slist.Add(jObject["index"].ToString());
            slist.Add(jObject["nonce"].ToString());
            slist.Add(jObject["nextconsensus"].ToString());
            slist.Add(jObject["script"].ToString());
            slist.Add(jObject["tx"].ToString());
            MysqlConn.ExecuteDataInsert("block", slist);

            Helper.blockTime = int.Parse(result["time"].ToString());

            foreach (var tx in jObject["tx"])
            {
                SaveTransaction.getInstance().Save(tx as JObject, null);
            }
        }
Exemplo n.º 16
0
        private void saveAsset(JToken jObject, string path)
        {
            JObject result = new JObject();

            result["version"]    = jObject["version"];
            result["id"]         = jObject["txid"];
            result["type"]       = jObject["asset"]["type"];
            result["name"]       = jObject["asset"]["name"];
            result["amount"]     = jObject["asset"]["amount"];
            result["available"]  = 1;
            result["precision"]  = jObject["asset"]["precision"];
            result["owner"]      = jObject["asset"]["owner"];
            result["admin"]      = jObject["asset"]["admin"];
            result["issuer"]     = 1;
            result["expiration"] = 0;
            result["frozen"]     = 0;

            List <string> slist = new List <string>();

            slist.Add(result["version"].ToString());
            slist.Add(result["id"].ToString());
            slist.Add(result["type"].ToString());
            slist.Add(result["name"].ToString());
            slist.Add(result["amount"].ToString());
            slist.Add(result["available"].ToString());
            slist.Add(result["precision"].ToString());
            slist.Add(result["owner"].ToString());
            slist.Add(result["admin"].ToString());
            slist.Add(result["issuer"].ToString());
            slist.Add(result["expiration"].ToString());
            slist.Add(result["frozen"].ToString());
            MysqlConn.ExecuteDataInsert("asset", slist);

            //File.Delete(path);
            //File.WriteAllText(path, result.ToString(), Encoding.UTF8);
        }
Exemplo n.º 17
0
        public override void Save(JToken jObject, string path)
        {
            foreach (JObject vout in jObject["vout"])
            {
                JObject result = new JObject();
                result["addr"]         = vout["address"];
                result["txid"]         = jObject["txid"];
                result["n"]            = vout["n"];
                result["asset"]        = vout["asset"];
                result["value"]        = vout["value"];
                result["createHeight"] = Helper.blockHeight;
                result["used"]         = 0;
                result["useHeight"]    = 0;
                result["claimed"]      = "";

                List <string> slist = new List <string>();
                slist.Add(result["addr"].ToString());
                slist.Add(result["txid"].ToString());
                slist.Add(result["n"].ToString());
                slist.Add(result["asset"].ToString());
                slist.Add(result["value"].ToString());
                slist.Add(result["createHeight"].ToString());
                slist.Add(result["used"].ToString());
                slist.Add(result["useHeight"].ToString());
                slist.Add(result["claimed"].ToString());
                MysqlConn.ExecuteDataInsert("utxo", slist);

                //var utxoPath = "utxo" + Path.DirectorySeparatorChar + result["txid"] + "_" + result["n"] + "_" + result["addr"] + ".txt";
                //File.Delete(utxoPath);
                //File.WriteAllText(utxoPath, result.ToString(), Encoding.UTF8);
            }
            foreach (JObject vin in jObject["vin"])
            {
                ChangeUTXO(vin["txid"].ToString(), vin["vout"].ToString());
            }
        }
Exemplo n.º 18
0
        public override void Save(JToken jToken, string path)
        {
            JToken result = null;

            try
            {
                var getUrl = Helper.url + "?jsonrpc=2.0&id=1&method=getapplicationlog&params=[" + jToken["txid"] + "]";
                var info   = wc.DownloadString(getUrl);
                var json   = JObject.Parse(info);
                result = json["result"];
            }
            catch (Exception e) {
                LogHelper.printLog("txid " + jToken["txid"] + " has 500");
            }
            if (result != null)
            {
                JObject jObject = new JObject();
                jObject["txid"]          = jToken["txid"];
                jObject["vmstate"]       = result["vmstate"];
                jObject["gas_consumed"]  = result["gas_consumed"];
                jObject["stack"]         = result["stack"];
                jObject["notifications"] = result["notifications"];
                jObject["blockindex"]    = Helper.blockHeight;

                List <string> slist = new List <string>();
                slist.Add(jToken["txid"].ToString());
                slist.Add(result["vmstate"].ToString());
                slist.Add(result["gas_consumed"].ToString());
                slist.Add(result["stack"].ToString());
                slist.Add(result["notifications"].ToString());
                slist.Add(Helper.blockHeight.ToString());
                MysqlConn.ExecuteDataInsert("notify", slist);

                var notifyPath = "notify" + Path.DirectorySeparatorChar + result["txid"] + "_" + result["n"] + ".txt";
                File.Delete(notifyPath);
                File.WriteAllText(notifyPath, jObject.ToString(), Encoding.UTF8);

                foreach (JObject notify in jObject["notifications"])
                {
                    if (notify["state"]["value"][0]["type"].ToString() == "ByteArray")
                    {
                        string transfer = Encoding.UTF8.GetString(Helper.HexString2Bytes(notify["state"]["value"][0]["value"].ToString()));
                        string contract = notify["contract"].ToString();

                        if (transfer == "transfer")
                        {
                            JObject nep5 = new JObject();
                            nep5["assetid"] = contract;
                            SaveNEP5Asset.getInstance().Save(nep5, null);

                            //存储Nep5Transfer内容
                            JObject tx = new JObject();
                            tx["blockindex"] = Helper.blockHeight;
                            tx["txid"]       = jToken["txid"].ToString();
                            tx["n"]          = 0;
                            tx["asset"]      = contract;
                            tx["from"]       = Encoding.UTF8.GetString(Helper.HexString2Bytes(notify["state"]["value"][1]["value"].ToString()));
                            tx["to"]         = Encoding.UTF8.GetString(Helper.HexString2Bytes(notify["state"]["value"][2]["value"].ToString()));
                            tx["value"]      = Encoding.UTF8.GetString(Helper.HexString2Bytes(notify["state"]["value"][3]["value"].ToString()));
                            SaveNEP5Transfer.getInstance().Save(tx, null);
                        }
                    }
                }
            }
        }