Пример #1
0
        public oResult db_execute(Dictionary <string, object> paramenter = null, Dictionary <string, object> request = null)
        {
            if (paramenter == null)
            {
                paramenter = new Dictionary <string, object>();
            }
            if (request == null)
            {
                request = new Dictionary <string, object>();
            }
            oResult r = new oResult()
            {
                ok = false, request = request, input = paramenter
            };

            try
            {
                if (paramenter.Count == 0 ||
                    !paramenter.ContainsKey("connect_string") ||
                    !paramenter.ContainsKey("script_command"))
                {
                    r.error = "Paramenter missing connect_string or script_command";
                    return(r);
                }

                var connect_string = paramenter.getValue("connect_string");
                var script_command = paramenter.getValue("script_command");

                using (SqlConnection connection = new SqlConnection(connect_string))
                {
                    SqlCommand cmd = new SqlCommand(script_command, connection);

                    foreach (var kv in paramenter)
                    {
                        cmd.Parameters.AddWithValue("@" + kv.Key, kv.Value);
                    }

                    foreach (var kv in request)
                    {
                        cmd.Parameters.AddWithValue("@" + kv.Key, kv.Value);
                    }

                    SqlDataAdapter dataAdapt = new SqlDataAdapter();
                    dataAdapt.SelectCommand = cmd;
                    DataTable dataTable = new DataTable();
                    dataAdapt.Fill(dataTable);

                    r.ok   = true;
                    r.data = dataTable;
                }
            }
            catch (Exception e)
            {
                r.error = "ERROR_THROW: API[db_execute] " + e.Message;
            }
            return(r);
        }
Пример #2
0
        public string js_call(string file___api, string api_name, string paramenter = null, string request = null)
        {
            oResult r = new oResult()
            {
                ok = false
            };

            Dictionary <string, object> para = null;
            Dictionary <string, object> req  = null;

            if (string.IsNullOrWhiteSpace(paramenter))
            {
                para = new Dictionary <string, object>();
            }
            if (string.IsNullOrWhiteSpace(request))
            {
                req = new Dictionary <string, object>();
            }

            try
            {
                if (!string.IsNullOrWhiteSpace(paramenter))
                {
                    para = JsonConvert.DeserializeObject <Dictionary <string, object> >(paramenter);
                }
            }
            catch (Exception ex)
            {
                r.error = "Convert Paramenter to type Dictionary<string, object> has error: " + ex.Message;
                return(JsonConvert.SerializeObject(r));
            }

            try
            {
                if (!string.IsNullOrWhiteSpace(request))
                {
                    req = JsonConvert.DeserializeObject <Dictionary <string, object> >(request);
                }
            }
            catch (Exception ex)
            {
                r.error = "Convert Request to type Dictionary<string, object> has error: " + ex.Message;
                return(JsonConvert.SerializeObject(r));
            }

            bool exist = false;

            switch (api_name)
            {
            case "notify_user":
                exist = true;
                break;

            case "notify_broadcast":
                exist = true;
                break;

            case "db_execute":
                exist = true;
                r     = db_execute(para, req);
                break;

            case "file_read":
                exist = true;
                string file = para.getValue("file");
                if (File.Exists(file))
                {
                    r.ok   = true;
                    r.data = File.ReadAllText(file);
                }
                else
                {
                    r.error = "Cannot found file: " + file;
                }
                break;
            }

            if (exist == false)
            {
                r.error = "Cannot found API " + api_name;
            }

            return(JsonConvert.SerializeObject(r));
        }
Пример #3
0
        public static string Execute(string file___api, Dictionary <string, object> parameters = null, Dictionary <string, object> request = null)
        {
            if (request == null)
            {
                request = new Dictionary <string, object>();
            }
            if (parameters == null)
            {
                parameters = new Dictionary <string, object>();
            }

            oResult r = new oResult()
            {
                ok      = false,
                name    = file___api,
                input   = parameters,
                request = request
            };

            string file_main = Path.Combine(_CONFIG.PATH_ROOT, "_api\\main.js");

            if (File.Exists(file_main) == false)
            {
                r.error = "ERROR[clsEngineJS.Execute] Cannot found file: main.js ";
                return(JsonConvert.SerializeObject(r));
            }

            string file_api = Path.Combine(_CONFIG.PATH_ROOT, "_api\\" + file___api + ".js");

            if (File.Exists(file_api) == false)
            {
                r.error = "ERROR[clsEngineJS.Execute] Cannot found file: " + file_api;
                return(JsonConvert.SerializeObject(r));
            }

            try
            {
                string js_main = File.ReadAllText(file_main);
                string js_api  = File.ReadAllText(file_api);

                js_main = js_main.Replace("[FILE___API]", file___api)
                          .Replace("[TEXT_REQUEST]", JsonConvert.SerializeObject(request))
                          .Replace("[TEXT_PARAMETER]", JsonConvert.SerializeObject(parameters))
                          .Replace("[EXECUTE_TEXT_JS]", js_api);

                var toReturn = m_engine.Evaluate(js_main);
                if (toReturn is Microsoft.ClearScript.Undefined)
                {
                    r.ok = true;
                }
                else
                {
                    string json = toReturn.ToString();
                    return(json);
                }
            }
            catch (Exception e)
            {
                r.error = "ERROR_THROW: " + e.Message;
            }
            return(JsonConvert.SerializeObject(r));
        }