/// <summary>
 /// ่ฎพ็ฝฎๅธฎๅŠฉไฟกๆฏ(่ฟ™้‡Œๅ‡ฝๆ•ฐ้œ€่ฆๅœจPresenterๅˆๅง‹ๅŒ–ๅฎŒๆˆไน‹ๅŽ่ฐƒ็”จ)
 /// </summary>
 /// <param name="modelInfo"></param>
 public void SetHelperInfo(HelperModel modelInfo)
 {
     if (modelInfo != null)
     {
         Model = modelInfo;               // ้‡ๆ–ฐๆ‹‰ๅ–ๆ•ฐๆฎ
         ViewLogic.LayoutView(modelInfo); // ๅˆทๆ–ฐ็•Œ้ข
     }
 }
Example #2
0
 public void SetTip(HZHDialogModel modelInfo)
 {
     if (modelInfo != null)
     {
         Model = modelInfo;            // ้‡ๆ–ฐๆ‹‰ๅ–ๆ•ฐๆฎ
         ViewLogic.ShowTip(modelInfo); // ๅˆทๆ–ฐ็•Œ้ข
     }
 }
Example #3
0
        public ActionResult Search(int id, string search)
        {
            ViewLogic log  = new ViewLogic();
            var       data = log.SearchView(id, search);

            ViewBag.Id     = id;
            ViewBag.Search = search;
            return(View(data.Tables[0]));
        }
        public void SwitchCaseTest_InDiv_X45_Y0_OutMean0()
        {
            string arg = "/";
            double x   = 45;
            double y   = 0;
            double mean;

            Assert.IsFalse(ViewLogic.SwitchCase(arg, x, y, out mean));
        }
        public void SwitchCaseTest_InPlus_XMinValu_YMinValu_OutMean0()
        {
            string arg = "+";
            double x   = double.MinValue;
            double y   = double.MinValue;
            double mean;

            Assert.IsFalse(ViewLogic.SwitchCase(arg, x, y, out mean));
        }
        public void SwitchCaseTest_InMulti_X343_Y30_OutMeanResul()
        {
            string arg = "*";
            double x   = -343;
            double y   = -30;
            double mean;

            Assert.IsTrue(ViewLogic.SwitchCase(arg, x, y, out mean));
            Assert.AreNotEqual(0, mean);
        }
        public void SwitchCaseTest_InDiv_X0_Y56_OutMean0()
        {
            string arg = "/";
            double x   = 0;
            double y   = 56;
            double mean;

            Assert.IsTrue(ViewLogic.SwitchCase(arg, x, y, out mean));
            Assert.AreEqual(0, mean);
        }
        public CommonResponse AutoFilter()
        {
            if (WebOperationContext.Current.IncomingRequest.Headers == null)
            {
                throw new Exception("Can not get current WebOpreationContext.");
            }

            var viewLogic = new ViewLogic();
            var result    = new CommonResponse();

            viewLogic.AutoFilter();

            return(result);
        }
        public CommonResponse ViewExecute(ViewExecuteReq req)
        {
            if (WebOperationContext.Current.IncomingRequest.Headers == null)
            {
                throw new Exception("Can not get current WebOpreationContext.");
            }

            var result = new CommonResponse();

            var jsonObj = new JsonObject(new KeyValuePair <string, JsonValue>("name", req.name), new KeyValuePair <string, JsonValue>("member_id", req.member_id));

            var viewLogic = new ViewLogic();

            result.code = "200"; result.message = viewLogic.Execute(jsonObj);

            return(result);
        }
Example #10
0
        public CommonResponse AutoAnalysis(string period, string state, string name)
        {
            if (WebOperationContext.Current.IncomingRequest.Headers == null)
            {
                throw new Exception("Can not get current WebOpreationContext.");
            }

            var viewLogic = new ViewLogic();
            var result    = new CommonResponse();

            try
            {
                result.code = "200";
                var stock_list = name == null ? new List <string>() : name.Split(',').ToList();
                result.message = viewLogic.AutoAnalysis(period == null ? string.Empty : period.ToLower(), "avg", stock_list);
            }
            catch (Exception ex)
            {
                result.code = "400";
                Console.WriteLine(ex.ToString());
            }

            return(result);
        }
Example #11
0
        public void Receive(Dictionary <string, string> paylaod)
        {
            var text      = paylaod["text"];
            var user_id   = paylaod["user_id"];
            var user_name = paylaod["user_name"];

            var words = text.Split(' ').ToList <string>();

            var date_param = DateTime.Now;
            var parameters = new List <string>();
            var keyword    = new List <string>();

            foreach (var word in words)
            {
                if (word.Contains("๋น…์•ค์ธ "))
                {
                    continue;
                }

                if (word.Contains("๋ถ„์„"))
                {
                    keyword.Add("๋ถ„์„");
                }
                else if (word.Contains("์ถ”์ฒœ"))
                {
                    keyword.Add("์ถ”์ฒœ");
                }
                else if (word.Contains("๋“ฑ๋ก"))
                {
                    keyword.Add("๋“ฑ๋ก");
                }
                else if (word.Contains("๊ฐ์‹œ"))
                {
                    keyword.Add("๊ฐ์‹œ");
                }
                else
                {
                    try
                    {
                        var test = DateTime.Parse(word);
                        date_param = test;
                    }
                    catch
                    {
                        parameters.Add(word);
                    }
                }
            }
            var respond_cnt = 0;

            foreach (var key in keyword)
            {
                var message = new JsonObject();
                if (key == "์ถ”์ฒœ")
                {
                    var recommaned_report = new StringBuilder();
                    var query             = string.Empty;
                    if (parameters.Contains("ํ•˜๋ฝ"))
                    {
                        message.Add("text", "*" + date_param.ToString("yyyy-MM-dd") + " ๋น…์•ค์ธ  ์‹œ๊ทธ๋„ ์ถ”์ฒœ ์ข…๋ชฉ*");
                        query = "SELECT CONCAT(current.์ตœ๊ทผ๊ฐฏ์ˆ˜, ' ๋‹จ๊ณ„ ํ•˜๋ฝ ์ข…๋ชฉ') as `title`, GROUP_CONCAT(current.์ข…๋ชฉ๋ช…) as `text`" +
                                " FROM (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + (date_param.DayOfWeek == DayOfWeek.Monday ? date_param.AddDays(-3).ToString("yyyy-MM-dd") :
                                                                          date_param.AddDays(-1).ToString("yyyy-MM-dd")) + "' AND unixtime <= '"
                                + date_param.ToString("yyyy-MM-dd") + "' ) as result1 WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = 'ํ•˜๋ฝ')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = 'ํ•˜๋ฝ' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as prev," +
                                " (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + date_param.ToString("yyyy-MM-dd") + "' AND unixtime <= '"
                                + date_param.AddDays(1).ToString("yyyy-MM-dd") + "' ) as result2" +
                                " WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = '์ƒ์Šน')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = 'ํ•˜๋ฝ' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as current" +
                                " WHERE prev.category = current.category GROUP BY current.์ตœ๊ทผ๊ฐฏ์ˆ˜";
                    }
                    else if (parameters.Contains("์ƒ์Šน"))
                    {
                        message.Add("text", "*" + date_param.ToString("yyyy-MM-dd") + " ๋น…์•ค์ธ  ์‹œ๊ทธ๋„ ์ถ”์ฒœ ์ข…๋ชฉ*");
                        query = "SELECT CONCAT(current.์ตœ๊ทผ๊ฐฏ์ˆ˜, ' ๋‹จ๊ณ„ ์ƒ์Šน ์ข…๋ชฉ') as `title`, GROUP_CONCAT(current.์ข…๋ชฉ๋ช…) as `text`" +
                                " FROM (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + (date_param.DayOfWeek == DayOfWeek.Monday ? date_param.AddDays(-3).ToString("yyyy-MM-dd") :
                                                                          date_param.AddDays(-1).ToString("yyyy-MM-dd")) + "' AND unixtime <= '"
                                + date_param.ToString("yyyy-MM-dd") + "' ) as result1 WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = 'ํ•˜๋ฝ')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = '์ƒ์Šน' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as prev," +
                                " (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + date_param.ToString("yyyy-MM-dd") + "' AND unixtime <= '"
                                + date_param.AddDays(1).ToString("yyyy-MM-dd") + "' ) as result2" +
                                " WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = '์ƒ์Šน')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = '์ƒ์Šน' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as current" +
                                " WHERE prev.category = current.category GROUP BY current.์ตœ๊ทผ๊ฐฏ์ˆ˜";
                    }
                    else if (parameters.Contains("์ „ํ™˜"))
                    {
                        message.Add("text", "*" + date_param.ToString("yyyy-MM-dd") + " ๋น…์•ค์ธ  ์‹œ๊ทธ๋„ ์ถ”์ฒœ ์ข…๋ชฉ*");
                        query = "SELECT CONCAT(current.์ตœ๊ทผ๊ฐฏ์ˆ˜, ' ๋‹จ๊ณ„ ์ „ํ™˜ ์ข…๋ชฉ') as `title`, GROUP_CONCAT(current.์ข…๋ชฉ๋ช…) as `text`" +
                                " FROM (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + (date_param.DayOfWeek == DayOfWeek.Monday ? date_param.AddDays(-3).ToString("yyyy-MM-dd") :
                                                                          date_param.AddDays(-1).ToString("yyyy-MM-dd")) + "' AND unixtime <= '"
                                + date_param.ToString("yyyy-MM-dd") + "' ) as result1 WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = 'ํ•˜๋ฝ')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = 'ํ•˜๋ฝ' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as prev," +
                                " (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + date_param.ToString("yyyy-MM-dd") + "' AND unixtime <= '"
                                + date_param.AddDays(1).ToString("yyyy-MM-dd") + "' ) as result2" +
                                " WHERE (์ „์ฒด์ƒํƒœ = '์ƒ์Šน')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = '์ƒ์Šน' AND ์ข…๊ฐ€ >= `20ํ‰๊ท ๊ฐ€`) as current" +
                                " WHERE prev.category = current.category GROUP BY current.์ตœ๊ทผ๊ฐฏ์ˆ˜";
                    }
                    else
                    {
                        message.Add("text", "*" + date_param.ToString("yyyy-MM-dd") + " ์‹ ๊ทœ ์ถ”์ฒœ ์ข…๋ชฉ*");
                        query = "SELECT CONCAT(current.์ตœ๊ทผ๊ฐฏ์ˆ˜, ' ๋‹จ๊ณ„ ์ƒ์Šน ์ข…๋ชฉ') as `title`, GROUP_CONCAT(current.์ข…๋ชฉ๋ช…) as `text`" +
                                " FROM (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + (date_param.DayOfWeek == DayOfWeek.Monday ? date_param.AddDays(-3).ToString("yyyy-MM-dd") :
                                                                          date_param.AddDays(-1).ToString("yyyy-MM-dd")) + "' AND unixtime <= '"
                                + date_param.ToString("yyyy-MM-dd") + "' ) as result1 WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = 'ํ•˜๋ฝ')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = '์ƒ์Šน' AND ์ตœ๊ทผ๊ฐฏ์ˆ˜ > 1 AND ๊ณผ๊ฑฐ๊ฐฏ์ˆ˜ > 1 AND ์ข…๊ฐ€ > `20ํ‰๊ท ๊ฐ€`) as prev," +
                                " (" +
                                " SELECT *" +
                                " FROM (SELECT category, column_get(rawdata, '์ข…๋ชฉ๋ช…' as char) as `์ข…๋ชฉ๋ช…`," +
                                " column_get(rawdata, '์ข…๊ฐ€' as double) as `์ข…๊ฐ€`," +
                                " column_get(rawdata, '20ํ‰๊ท ๊ฐ€' as double) as `20ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '60ํ‰๊ท ๊ฐ€' as double) as `60ํ‰๊ท ๊ฐ€`," +
                                " column_get(rawdata, '์ „์ฒด์ƒํƒœ' as char) as `์ „์ฒด์ƒํƒœ`," +
                                " column_get(rawdata, 'ํ˜„์žฌ์ƒํƒœ' as char) as `ํ˜„์žฌ์ƒํƒœ`," +
                                " column_get(rawdata, 'VํŒจํ„ด_๋น„์œจ' as double) as `VํŒจํ„ด`," +
                                " column_get(rawdata, 'AํŒจํ„ด_๋น„์œจ' as double) as `AํŒจํ„ด`," +
                                " column_get(rawdata, '๊ฐ•๋„' as double) as `๊ฐ•๋„`," +
                                " column_get(rawdata, '์ตœ๊ทผ๊ฐฏ์ˆ˜' as double) as `์ตœ๊ทผ๊ฐฏ์ˆ˜`," +
                                " column_get(rawdata, '๊ณผ๊ฑฐ๊ฐฏ์ˆ˜' as double) as `๊ณผ๊ฑฐ๊ฐฏ์ˆ˜`" +
                                " FROM past_stock WHERE unixtime >= '" + date_param.ToString("yyyy-MM-dd") + "' AND unixtime <= '"
                                + date_param.AddDays(1).ToString("yyyy-MM-dd") + "' ) as result2" +
                                " WHERE (์ „์ฒด์ƒํƒœ = 'ํšก๋ณด' OR ์ „์ฒด์ƒํƒœ = 'ํ•˜๋ฝ')" +
                                " AND ํ˜„์žฌ์ƒํƒœ = '์ƒ์Šน' AND ์ตœ๊ทผ๊ฐฏ์ˆ˜ > 1 AND ๊ณผ๊ฑฐ๊ฐฏ์ˆ˜ > 1 AND ์ข…๊ฐ€ > `20ํ‰๊ท ๊ฐ€`) as current" +
                                " WHERE prev.category = current.category GROUP BY current.์ตœ๊ทผ๊ฐฏ์ˆ˜";
                    }
                    var down_recommaned = MariaDBConnector.Instance.GetJsonArray("DynamicQueryExecuter", query);

                    message.Add("attachments", down_recommaned);
                    this.SendMessage(message.ToString());
                    respond_cnt++;
                }
                else if (key == "๋ถ„์„" || key == "๋“ฑ๋ก")
                {
                    foreach (var param in parameters)
                    {
                        message = new JsonObject();
                        if (key == "๋ถ„์„")
                        {
                            var search_result = stock_list.FirstOrDefault(p => p.Value["name"].ReadAs <string>().Contains(param) || p.Value["code"].ReadAs <string>().Contains(param));
                            if (search_result.Key != null)
                            {
                                var period = "day";
                                if (parameters.Find(p => p.Contains("์ฃผ๊ฐ„")) != null)
                                {
                                    period = "week";
                                }

                                var view_instance = new ViewLogic();
                                var resultArr     = JsonObject.Parse(view_instance.AutoAnalysis(period, "avg",
                                                                                                new List <string>()
                                {
                                    search_result.Value["code"].ReadAs <string>()
                                },
                                                                                                null, date_param.AddDays(1).ToString("yyyy-MM-dd"), false));
                                if (resultArr.Count > 0)
                                {
                                    var result = resultArr[0];

                                    #region ์ฃผ๊ฐ€ ๋ถ„์„ ๋ ˆํฌํŠธ
                                    var price                 = result["์ข…๊ฐ€"].ReadAs <double>();
                                    var highest               = result["์ตœ๊ณ ๊ฐ€"].ReadAs <double>();
                                    var lowest                = result["์ตœ์ €๊ฐ€"].ReadAs <double>();
                                    var life_price            = result["์ƒ๋ช…์„ "].ReadAs <double>();
                                    var price_location        = Math.Round(result["์ฃผ๊ฐ€์œ„์น˜"].ReadAs <double>(), 2);
                                    var price_analysis_report = new StringBuilder();
                                    price_analysis_report.AppendFormat("```ํ˜„์žฌ ๊ฐ€๊ฒฉ์€ {0}์›์ด๋ฉฐ, ์ƒ๋ช… ๊ฐ€๊ฒฉ์ธ {1}์› {2}์— ์œ„์น˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.\n",
                                                                       price.ToString(), life_price.ToString(), life_price <= price ? "์œ„" : "์•„๋ž˜");
                                    price_analysis_report.AppendFormat("์ตœ์ €๊ฐ€ {0}์›, ์ตœ๊ณ ๊ฐ€๋Š” {1}์›์œผ๋กœ {2}%๋กœ {3} ์œ„์น˜์— ๋„๋‹ฌํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.```",
                                                                       lowest.ToString(), highest.ToString(), price_location.ToString(), price_location < 30 ? "๋‚ฎ์€" : (price_location < 70 ? "์ค‘๊ฐ„" : "๋†’์€"));
                                    #endregion
                                    #region ๊ฑฐ๋ž˜๋Ÿ‰ ๋ถ„์„ ๋ ˆํฌํŠธ
                                    var amount                 = result["์ƒ์žฅ์ฃผ์‹์ˆ˜"].ReadAs <double>();
                                    var volume                 = result["๊ฑฐ๋ž˜๋Ÿ‰"].ReadAs <double>();
                                    var volume_oscillator      = Math.Round(result["VOLUME_OSCILLATOR"].ReadAs <double>(), 2);
                                    var volume_analysis_report = new StringBuilder();
                                    volume_analysis_report.AppendFormat("```{0}์ฒœ์ฃผ ๋Œ€๋น„ ํ˜„์žฌ ๊ฑฐ๋ž˜๋˜๋Š” ์ฃผ์‹์ˆ˜๋Š” {1}์ฒœ์ฃผ๋กœ {2}%์˜ ๊ฑฐ๋ž˜๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๊ณ ,\n",
                                                                        Math.Round(amount / 1000, 2).ToString(), Math.Round(volume / 1000, 2).ToString(), Math.Round(volume / amount * 100, 2).ToString());
                                    volume_analysis_report.AppendFormat("5์ผ ๊ฑฐ๋ž˜๋Ÿ‰ ๋Œ€๋น„ 20์ผ ๊ฑฐ๋ž˜๋Ÿ‰ ๋น„๊ตํ–ˆ์„๋•Œ, {0}%๋งŒํผ {1}ํ•˜์˜€์Šต๋‹ˆ๋‹ค.```",
                                                                        volume_oscillator.ToString(), volume_oscillator > 0 ? "์ฆ๊ฐ€" : "๊ฐ์†Œ");
                                    #endregion
                                    #region ์ถ”์„ธ ๋ถ„์„ ๋ ˆํฌํŠธ
                                    var rsi                   = result["RSI"].ReadAs <double>();
                                    var rsi_state             = Math.Round(rsi) <= 30 ? "๊ณผ๋งค๋„" : (Math.Round(rsi) >= 70 ? "๊ณผ๋งค์ˆ˜" : "์ €ํ•ญ/์ง€์ง€");
                                    var total_state           = result["์ „์ฒด์ƒํƒœ"].ReadAs <string>();
                                    var current_state         = result["ํ˜„์žฌ์ƒํƒœ"].ReadAs <string>();
                                    var current_count         = result["ํ˜„์žฌ์ƒํƒœ_์œ ์ง€ํšŸ์ˆ˜"].ReadAs <int>();
                                    var past_count            = result["๊ณผ๊ฑฐ์ƒํƒœ_์œ ์ง€ํšŸ์ˆ˜"].ReadAs <int>();
                                    var trend_analysis_report = new StringBuilder();
                                    trend_analysis_report.AppendFormat("```ํ˜„์žฌ {0} ์ค‘์ด๋ฉฐ, ์ „์ฒด์ ์œผ๋กœ๋Š” {1}์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.\n", current_state, total_state);
                                    trend_analysis_report.AppendFormat("{0} ๋‹จ๊ณ„๋งŒํผ {1}ํ•˜์˜€๊ณ , ๊ณผ๊ฑฐ์—๋Š” {2} ๋‹จ๊ณ„๋งŒํผ {3}ํ•˜์˜€์Šต๋‹ˆ๋‹ค.\n",
                                                                       current_count.ToString(), current_state, past_count, current_state == "์ƒ์Šน" ? "ํ•˜๋ฝ" : "์ƒ์Šน");
                                    trend_analysis_report.AppendFormat("์ตœ๊ทผ 14์ผ ๋™์•ˆ RSI๊ฐ€ {0}์ธ ๊ฒƒ์œผ๋กœ ๋ณด์•„, {1} ์ƒํƒœ๋กœ ํŒ๋‹จ๋˜์–ด ์ง‘๋‹ˆ๋‹ค.```",
                                                                       Math.Round(rsi, 2).ToString(), rsi_state);
                                    #endregion
                                    #region ์ €ํ•ญ๊ณผ ์ง€์ง€ ๋ฐ ์ข…ํ•ฉ ๋ถ„์„ ๋ ˆํฌํŠธ
                                    var v_pattern  = result["VํŒจํ„ด_๋น„์œจ"].ReadAs <double>();
                                    var a_pattern  = result["AํŒจํ„ด_๋น„์œจ"].ReadAs <double>();
                                    var va_pretext = new StringBuilder();
                                    va_pretext.AppendFormat("`VํŒจํ„ด : {0}%`      `AํŒจํ„ด : {1}%`", Math.Round(v_pattern, 2), Math.Round(a_pattern, 2));
                                    var total_support    = new List <int>();
                                    var total_resistance = new List <int>();
                                    if (result.ContainsKey("๋ฐ˜์ „์ง€์ง€"))
                                    {
                                        foreach (var item in JsonArray.Parse(result["๋ฐ˜์ „์ง€์ง€"].ReadAs <string>()))
                                        {
                                            var test   = item.Value.ReadAs <int>();
                                            var length = item.Value.ReadAs <int>().ToString().Length - 3;
                                            if (length > 0)
                                            {
                                                var sampling = int.Parse(Math.Pow(10, length).ToString());
                                                test = test / sampling * sampling;
                                            }
                                            if (!total_support.Contains(test))
                                            {
                                                total_support.Add(test);
                                            }
                                        }
                                    }
                                    if (result.ContainsKey("์‹ค์ œ์ง€์ง€"))
                                    {
                                        foreach (var item in JsonArray.Parse(result["์‹ค์ œ์ง€์ง€"].ReadAs <string>()))
                                        {
                                            var test   = item.Value.ReadAs <int>();
                                            var length = item.Value.ReadAs <int>().ToString().Length - 3;
                                            if (length > 0)
                                            {
                                                var sampling = int.Parse(Math.Pow(10, length).ToString());
                                                test = test / sampling * sampling;
                                            }
                                            if (!total_support.Contains(test))
                                            {
                                                total_support.Add(test);
                                            }
                                        }
                                    }
                                    if (result.ContainsKey("๋ฐ˜์ „์ €ํ•ญ"))
                                    {
                                        foreach (var item in JsonArray.Parse(result["๋ฐ˜์ „์ €ํ•ญ"].ReadAs <string>()))
                                        {
                                            var test   = item.Value.ReadAs <int>();
                                            var length = item.Value.ReadAs <int>().ToString().Length - 3;
                                            if (length > 0)
                                            {
                                                var sampling = int.Parse(Math.Pow(10, length).ToString());
                                                test = test / sampling * sampling;
                                            }
                                            if (!total_resistance.Contains(test))
                                            {
                                                total_resistance.Add(test);
                                            }
                                        }
                                    }
                                    if (result.ContainsKey("์‹ค์ œ์ €ํ•ญ"))
                                    {
                                        foreach (var item in JsonArray.Parse(result["์‹ค์ œ์ €ํ•ญ"].ReadAs <string>()))
                                        {
                                            var test   = item.Value.ReadAs <int>();
                                            var length = item.Value.ReadAs <int>().ToString().Length - 3;
                                            if (length > 0)
                                            {
                                                var sampling = int.Parse(Math.Pow(10, length).ToString());
                                                test = test / sampling * sampling;
                                            }
                                            if (!total_resistance.Contains(test))
                                            {
                                                total_resistance.Add(test);
                                            }
                                        }
                                    }
                                    var support_pretext = new StringBuilder("```์ง€์ง€ ๊ฐ€๊ฒฉ :");
                                    foreach (var support in total_support.OrderByDescending(p => p))
                                    {
                                        support_pretext.Append(" ").Append(support.ToString()).Append("์›");
                                    }
                                    var resistance_pretext = new StringBuilder("```์ €ํ•ญ ๊ฐ€๊ฒฉ :");
                                    foreach (var support in total_resistance.OrderBy(p => p))
                                    {
                                        resistance_pretext.Append(" ").Append(support.ToString()).Append("์›");
                                    }

                                    if (result.ContainsKey("๋ฐ”๋‹ฅ"))
                                    {
                                        support_pretext.Append("\n๋ฐ”๋‹ฅ ๊ฐ€๊ฒฉ :");
                                        foreach (var bottom in result["๋ฐ”๋‹ฅ"].ReadAs <JsonArray>())
                                        {
                                            support_pretext.Append(" ").Append(bottom.ToString());
                                        }
                                    }
                                    if (result.ContainsKey("์ฒœ์žฅ"))
                                    {
                                        resistance_pretext.Append("\n์ฒœ์žฅ ๊ฐ€๊ฒฉ :");
                                        foreach (var up in result["์ฒœ์žฅ"].ReadAs <JsonArray>())
                                        {
                                            resistance_pretext.Append(" ").Append(up.ToString());
                                        }
                                    }
                                    support_pretext.Append("``` ");
                                    resistance_pretext.Append("``` ");
                                    var action_state          = "๋งค์ˆ˜";
                                    var total_analysis_report = new StringBuilder();
                                    if (total_state == "์ƒ์Šน")
                                    {
                                        if (current_state == "์ƒ์Šน")
                                        {
                                            total_analysis_report.Append("๊ฐ•ํ•œ ์ƒ์Šน ์ค‘์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๋งค๋„";
                                        }
                                        else
                                        {
                                            total_analysis_report.Append("๊ณ ์  ํ™•์ธ ํ›„ ์กฐ์ • ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๋งค์ˆ˜";
                                        }
                                    }
                                    else if (total_state == "ํ•˜๋ฝ")
                                    {
                                        if (current_state == "์ƒ์Šน")
                                        {
                                            total_analysis_report.Append("์ €์  ํ™•์ธ ํ›„ ๋ฐ”๋‹ฅ ํ˜•์„ฑ ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๋งค์ˆ˜";
                                        }
                                        else
                                        {
                                            total_analysis_report.Append("๊ฐ•ํ•œ ํ•˜๋ฝ ์ค‘์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๊ด€์‹ฌ";
                                        }
                                    }
                                    else if (total_state == "ํšก๋ณด")
                                    {
                                        if (current_state == "์ƒ์Šน")
                                        {
                                            total_analysis_report.Append("์ƒ์Šน ์ „ํ™˜ ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๋งค์ˆ˜";
                                        }
                                        else
                                        {
                                            total_analysis_report.Append("ํ•˜๋ฝ ์ „ํ™˜ ๊ตฌ๊ฐ„์ž…๋‹ˆ๋‹ค.");
                                            action_state = "๊ด€์‹ฌ";
                                        }
                                    }
                                    total_analysis_report.AppendFormat("\n๊ฑฐ๋ž˜๋Ÿ‰ ๋ถ„์„({0}%๋งŒํผ {1})์— ๋”ฐ๋ผ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ์‹ ๋ขฐ์„ฑ์ด ๊ฒฐ์ •๋˜๊ณ ,\n" +
                                                                       "RSI({2})์— ๋”ฐ๋ผ ๋งค์ˆ˜ํƒ€์ด๋ฐ์„ ํฌ์ฐฉํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.\n" +
                                                                       "์ถ”๊ฐ€์ ์œผ๋กœ ์ถ”์„ธ๋ถ„์„์—์„œ ๋‚˜์˜จ ์ƒ์Šน/ํ•˜๋ฝ์˜ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์ €ํ•ญ/์ง€์ง€ ๊ฐ€๊ฒฉ์„ ๊ฒฐ์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.",
                                                                       volume_oscillator.ToString(), volume_oscillator > 0 ? "์ฆ๊ฐ€" : "๊ฐ์†Œ", rsi.ToString());
                                    #endregion
                                    #region ์บ”๋“ค ๋ถ„์„ ๋ ˆํฌํŠธ
                                    var curr_start = result["curr_start"].ReadAs <double>();
                                    var curr_end   = result["curr_end"].ReadAs <double>();
                                    var curr_high  = result["curr_high"].ReadAs <double>();
                                    var curr_low   = result["curr_low"].ReadAs <double>();

                                    var prev_start = result["prev_start"].ReadAs <double>();
                                    var prev_end   = result["prev_end"].ReadAs <double>();
                                    var prev_high  = result["prev_high"].ReadAs <double>();
                                    var prev_low   = result["prev_low"].ReadAs <double>();

                                    // Single Candle Analysis
                                    var curr_candle_direct = curr_start > curr_end ? "์Œ๋ด‰" : curr_start < curr_end ? "์–‘๋ด‰" : "๋„์ง€";
                                    var curr_candle_weight = Math.Abs(curr_start - curr_end);
                                    var curr_low_weight    = Math.Abs((curr_start > curr_end ? curr_end : curr_start) - curr_low);
                                    var curr_high_weight   = Math.Abs((curr_start > curr_end ? curr_start : curr_end) - curr_high);
                                    // Dual Candle Analysis
                                    var prev_candle_direct    = prev_start > prev_end ? "์Œ๋ด‰" : prev_start < prev_end ? "์–‘๋ด‰" : "๋„์ง€";
                                    var prev_candle_weight    = Math.Abs(prev_start - prev_end);
                                    var prev_low_line_weight  = Math.Abs((prev_start > prev_end ? prev_end : prev_start) - prev_low);
                                    var prev_high_line_weight = Math.Abs((prev_start > prev_end ? prev_start :prev_end) - prev_high);

                                    var total_range            = prev_end * 0.6;
                                    var price_movement         = curr_candle_weight + curr_low_weight + curr_high_weight;
                                    var candle_movement        = Math.Round(price_movement / total_range * 100, 2);
                                    var high_per               = ((curr_candle_direct == "์Œ๋ด‰" ? curr_candle_weight : 0) + curr_high_weight) / price_movement * 100;
                                    var low_per                = ((curr_candle_direct == "์–‘๋ด‰" ? curr_candle_weight : 0) + curr_low_weight) / price_movement * 100;
                                    var candle_analysis_report = new StringBuilder();
                                    candle_analysis_report.AppendFormat("```ํ˜„์žฌ ์ฃผ๊ฐ€๋Š” {0}%({1}์›) ์œ ๋™์„ฑ์„ ๋ณด์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.\n", candle_movement.ToString(), price_movement.ToString());
                                    candle_analysis_report.AppendFormat("ํ˜„์žฌ ์บ”๋“ค์€ {0}({4}์›) ํ˜•ํƒœ์ด๋ฉฐ, (์œ„๊ผฌ๋ฆฌ:{1}% / ์•„๋ž˜๊ผฌ๋ฆฌ:{2}%)์ธ ๊ฒƒ์œผ๋กœ ๋ณด์•„ {3}๊ฐ€ ์šฐ์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค.\n",
                                                                        curr_candle_direct, Math.Round(high_per, 2), Math.Round(low_per, 2), low_per > high_per ? "๋งค์ˆ˜์„ธ" : "๋งค๋„์„ธ", curr_end - curr_start);

                                    var test1 = curr_start - prev_end;
                                    var test2 = curr_end - curr_start;
                                    var test3 = prev_end - prev_start;
                                    if (test1 <= 0 && test2 < 0)
                                    {
                                        candle_analysis_report.Append(prev_candle_direct + " ํ›„ ํ•˜๋ฝ ์ถ”์„ธ ์บ”๋“ค" +
                                                                      (prev_candle_direct == "์Œ๋ด‰" ? " (200%์ด์ƒ ๋ถ€์ •)" : " (50%์ดํ•˜ ๋ถ€์ •)") + "\n");
                                    }
                                    else if (test1 > 0 && test2 < 0)
                                    {
                                        candle_analysis_report.Append(prev_candle_direct + " ํ›„ ํ•˜๋ฝ ๋ฐ˜๊ฒฉ ์บ”๋“ค" +
                                                                      (prev_candle_direct == "์Œ๋ด‰" ? " (100%์ด์ƒ ๋ถ€์ •)" : " (50%์ดํ•˜ ๋ถ€์ •)") + "\n");
                                    }
                                    else if (test1 >= 0 && test2 > 0)
                                    {
                                        candle_analysis_report.Append(prev_candle_direct + " ํ›„ ์ƒ์Šน ์ถ”์„ธ ์บ”๋“ค" +
                                                                      (prev_candle_direct == "์Œ๋ด‰" ? " (50%์ดํ•˜ ๊ธ์ •)" :" (200%์ด์ƒ ๊ธ์ •)") + "\n");
                                    }
                                    else if (test1 < 0 && test2 > 0)
                                    {
                                        candle_analysis_report.Append(prev_candle_direct + " ํ›„ ์ƒ์Šน ๋ฐ˜๊ฒฉ ์บ”๋“ค" +
                                                                      (prev_candle_direct == "์Œ๋ด‰" ? " (50%์ดํ•˜ ๊ธ์ •)" : " (100%์ด์ƒ ๊ธ์ •)") + "\n");
                                    }
                                    else
                                    {
                                        candle_analysis_report.Append(prev_candle_direct + " ํ›„ ๋„์ง€ ์บ”๋“ค\n");
                                    }
                                    candle_analysis_report.AppendFormat("๊ฐ•๋„ : {1}์› ๋Œ€๋น„ {0}%", (test1 + test2 + test3) / test3 * 100, prev_candle_weight);
                                    candle_analysis_report.Append("```");
                                    #endregion

                                    message.Add("text", "*" + date_param.ToString("yyyy-MM-dd") + " " + param + " ๋ถ„์„๊ฒฐ๊ณผ*");
                                    message.Add("attachments", new JsonArray(
                                                    new JsonObject(
                                                        //new KeyValuePair<string, JsonValue>("color", "#00ff00"),
                                                        //new KeyValuePair<string, JsonValue>("pretext", "pre_text"),
                                                        new KeyValuePair <string, JsonValue>("title", "์ฃผ๊ฐ€ ๋ถ„์„"),
                                                        new KeyValuePair <string, JsonValue>("text", price_analysis_report.ToString()),
                                                        //new KeyValuePair<string, JsonValue>("fields", price_fields),
                                                        new KeyValuePair <string, JsonValue>("mrkdwn_in", new JsonArray("text", "pretext", "fields"))
                                                        ), new JsonObject(
                                                        //new KeyValuePair<string, JsonValue>("color", "#ff0000"),
                                                        //new KeyValuePair<string, JsonValue>("pretext", "pre_text"),
                                                        new KeyValuePair <string, JsonValue>("title", "๊ฑฐ๋ž˜๋Ÿ‰ ๋ถ„์„"),
                                                        new KeyValuePair <string, JsonValue>("text", volume_analysis_report.ToString()),
                                                        new KeyValuePair <string, JsonValue>("mrkdwn_in", new JsonArray("text", "pretext", "fields"))
                                                        ), new JsonObject(
                                                        //new KeyValuePair<string, JsonValue>("color", "#0000ff"),
                                                        new KeyValuePair <string, JsonValue>("pretext", va_pretext.ToString()),
                                                        new KeyValuePair <string, JsonValue>("title", "์ถ”์„ธ ๋ถ„์„"),
                                                        new KeyValuePair <string, JsonValue>("text", trend_analysis_report.ToString()),
                                                        new KeyValuePair <string, JsonValue>("mrkdwn_in", new JsonArray("text", "pretext", "fields"))
                                                        ), new JsonObject(
                                                        //new KeyValuePair<string, JsonValue>("color", "#0000ff"),
                                                        new KeyValuePair <string, JsonValue>("title", "์บ”๋“ค ๋ถ„์„"),
                                                        new KeyValuePair <string, JsonValue>("text", candle_analysis_report.ToString()),
                                                        new KeyValuePair <string, JsonValue>("mrkdwn_in", new JsonArray("text", "pretext", "fields"))
                                                        ), new JsonObject(
                                                        //new KeyValuePair<string, JsonValue>("color", "#ffffff"),
                                                        new KeyValuePair <string, JsonValue>("pretext", support_pretext.ToString() + resistance_pretext.ToString()),
                                                        new KeyValuePair <string, JsonValue>("title", "์ข…ํ•ฉ ์†Œ๊ฒฌ"),
                                                        new KeyValuePair <string, JsonValue>("text", "```" + total_analysis_report.ToString() + "```"),
                                                        new KeyValuePair <string, JsonValue>("mrkdwn_in", new JsonArray("text", "pretext", "fields"))
                                                        )));
                                }
                                this.SendMessage(message.ToString());
                                respond_cnt++;
                            }
                        }
                        else if (key.Contains("๋“ฑ๋ก"))
                        {
                            var search_result = stock_list.FirstOrDefault(p => p.Value["name"].ReadAs <string>().Contains(param) || p.Value["code"].ReadAs <string>().Contains(param));

                            if (search_result.Key != null)
                            {
                                search_result.Value["state"] = true;
                                var resultPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory);
                                System.IO.File.WriteAllText(Path.Combine(resultPath, "stocklist.json"), stock_list.ToString());
                                message.Add("text", "*" + search_result.Value["name"].ReadAs <string>() + " ๋“ฑ๋ก ์™„๋ฃŒ*");
                                this.SendMessage(message.ToString());
                                respond_cnt++;
                            }
                        }
                    }
                }
            }
            if (respond_cnt == 0)
            {
                var message = new JsonObject();
                message.Add("text", "์ œ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ช…๋ นํ•ด์ฃผ์„ธ์š”.");
                this.SendMessage(message.ToString());
                message["text"] = ">>>1. ๋น…์•ค์ธ  (์ฃผ์‹๋ช…) ๋ถ„์„ํ•ด\n2. ๋น…์•ค์ธ  (์ƒ์Šน,ํ•˜๋ฝ,์ „ํ™˜,์‹ ๊ทœ) ์ถ”์ฒœํ•ด๋ด";
                this.SendMessage(message.ToString());
            }
        }
Example #12
0
 /// <summary>
 ///  ็•Œ้ข่Žทๅ–็„ฆ็‚น
 /// </summary>
 public void Activate()
 {
     ViewLogic.Activate();
 }
Example #13
0
 /// <summary>
 ///  ๆ˜พ็คบ็•Œ้ข
 /// </summary>
 public void Show()
 {
     ViewLogic.Show();
 }
Example #14
0
        protected override void OnMessage(MessageEventArgs e)
        {
            var result  = new JsonObject();
            var reqInfo = JsonValue.Parse(e.Data);

            foreach (var item in reqInfo)
            {
                result.Add(new KeyValuePair <string, JsonValue>(item.Key, item.Value));
            }
            JsonValue returnString = string.Empty;
            var       target       = reqInfo["target"].ReadAs <string>();
            var       method       = reqInfo["method"].ReadAs <string>();

            switch (target.ToLower())
            {
                #region Member
            case "member":
            {
                var memberLogic = new MemberLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "schema":
                {
                    returnString = memberLogic.Schema();
                    break;
                }

                case "access":
                {
                    returnString = memberLogic.Access(reqInfo["parameters"]);
                    break;
                }

                case "getlist":
                {
                    returnString = memberLogic.GetList();
                    break;
                }

                case "create":
                {
                    returnString = memberLogic.Create(reqInfo["parameters"]);
                    break;
                }

                case "modify":
                {
                    returnString = memberLogic.Modify(reqInfo["parameters"]);
                    break;
                }

                case "delete":
                {
                    returnString = memberLogic.Delete(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion

                #region Collection
            case "collection":
            {
                var collectionLogic = new CollectionLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "schema":
                {
                    returnString = collectionLogic.Schema();
                    break;
                }

                case "getlist":
                {
                    returnString = collectionLogic.GetList();
                    break;
                }

                case "create":
                {
                    returnString = collectionLogic.Create(reqInfo["parameters"]);
                    break;
                }

                case "modify":
                {
                    returnString = collectionLogic.Modify(reqInfo["parameters"]);
                    break;
                }

                case "delete":
                {
                    returnString = collectionLogic.Delete(reqInfo["parameters"]);
                    break;
                }

                case "execute":
                {
                    returnString = collectionLogic.Execute(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion

                #region Analysis
            case "analysis":
            {
                var analysisLogic = new AnalysisLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "schema":
                {
                    returnString = analysisLogic.Schema();
                    break;
                }

                case "getlist":
                {
                    returnString = analysisLogic.GetList();
                    break;
                }

                case "create":
                {
                    returnString = analysisLogic.Create(reqInfo["parameters"]);
                    break;
                }

                case "modify":
                {
                    returnString = analysisLogic.Modify(reqInfo["parameters"]);
                    break;
                }

                case "delete":
                {
                    returnString = analysisLogic.Delete(reqInfo["parameters"]);
                    break;
                }

                case "execute":
                {
                    returnString = analysisLogic.Execute(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion

                #region DataView
            case "view":
            {
                var viewLogic = new ViewLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "schema":
                {
                    returnString = viewLogic.Schema(reqInfo["parameters"]["privilege"].ReadAs <string>());
                    break;
                }

                case "getlist":
                {
                    returnString = viewLogic.GetList(reqInfo["parameters"]);
                    break;
                }

                case "create":
                {
                    returnString = viewLogic.Create(reqInfo["parameters"]);
                    break;
                }

                case "modify":
                {
                    returnString = viewLogic.Modify(reqInfo["parameters"]);
                    break;
                }

                case "delete":
                {
                    returnString = viewLogic.Delete(reqInfo["parameters"]);
                    break;
                }

                case "execute":
                {
                    returnString = viewLogic.Execute(reqInfo["parameters"]);
                    break;
                }

                case "execute_item":
                {
                    returnString = viewLogic.ExecuteItem(reqInfo["parameters"]);
                    break;
                }

                case "download":
                {
                    returnString = viewLogic.Download(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion

                #region Input
            case "input":
            {
                var inputLogic = new InputLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "getlist":
                {
                    returnString = inputLogic.GetList(reqInfo["parameters"]);
                    break;
                }

                case "create":
                {
                    returnString = inputLogic.Create(reqInfo["parameters"]);
                    break;
                }

                case "modify":
                {
                    returnString = inputLogic.Modify(reqInfo["parameters"]);
                    break;
                }

                case "delete":
                {
                    returnString = inputLogic.Delete(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion

                #region Cluster
            case "cluster":
            {
                var clusterLogic = new ClusterLogic(ref this.sendEvent, ref this.sendQueue);
                switch (method.ToLower())
                {
                case "schema":
                {
                    break;
                }

                case "getlist":
                {
                    returnString = clusterLogic.GetList(reqInfo["parameters"]);
                    break;
                }

                case "gettab":
                {
                    returnString = clusterLogic.GetTab(reqInfo["parameters"]);
                    break;
                }

                case "getplayback":
                {
                    returnString = clusterLogic.GetPlayback(reqInfo["parameters"]);
                    break;
                }
                }
                break;
            }
                #endregion
            }

            result.Add(new KeyValuePair <string, JsonValue>("result", returnString));
            this.Send(result.ToString());
        }