예제 #1
0
        public JsArray<JsString> getCachedFileList()
        {
            JsArray<JsString> contentList = new JsArray<JsString>();
            foreach (JsString key in ContentCache.htmlMergedFiles)
            {
                contentList.Add(key);
            }

            return contentList;
        }
예제 #2
0
        public JsArray <JsString> getCachedFileList()
        {
            JsArray <JsString> contentList = new JsArray <JsString>();

            foreach (JsString key in ContentCache.htmlMergedFiles)
            {
                contentList.Add(key);
            }

            return(contentList);
        }
예제 #3
0
 public JsImplParameterInfo[] GetParameters()
 {
     if (_parameterInfo == null)
     {
         _parameterInfo = new JsArray <JsImplParameterInfo>();
         foreach (string paramTypeName in parameters)
         {
             _parameterInfo.Add(new JsImplParameterInfo(Type.GetType(paramTypeName)));
         }
     }
     return(_parameterInfo);
 }
예제 #4
0
        // 每一项是JsArray或JsObject(assoc=true)
        public JsArray queryAll(string sql, bool assoc = false)
        {
            DbDataReader rd  = env.cnn.ExecQuery(sql);
            var          ret = new JsArray();

            if (rd.HasRows)
            {
                while (rd.Read())
                {
                    ret.Add(readerToCol(rd, assoc));
                }
            }
            rd.Close();
            return(ret);
        }
예제 #5
0
        public override object filter(JsObject obj, JsObject arg)
        {
            JsArray<ngFoodItem> res = new JsArray<ngFoodItem>();

            string category = arg["category"].As<JsString>();
            int day = arg["day"].As<int>();
            JsArray<JsArray<ngFoodItem>> allFoods = obj.As<JsArray<JsArray<ngFoodItem>>>();
            JsArray<ngFoodItem> items = allFoods[day];
            if (null != items) {
                foreach (ngFoodItem item in items) {
                    if ((item.Category == category) && !item.isContainer) {
                        res.Add(item);
                    }
                }
            }
            return res;
        }
예제 #6
0
        public override object filter(JsObject obj, JsObject arg)
        {
            JsArray<ngOrderEntry> res = new JsArray<ngOrderEntry>();
            int day = arg["day"].As<int>();
            JsArray<JsArray<ngOrderEntry>> allOrders = obj.As<JsArray<JsArray<ngOrderEntry>>>();
            JsArray<ngOrderEntry> tmp = allOrders[day];
            if (tmp != null && tmp.length > 0) {
                foreach (ngOrderEntry order in tmp) {
                    ngFoodItem foodItem = ngFoodController.inst.findFoodById(order.FoodId);
                    if (null != foodItem && !foodItem.isContainer) {
                        res.Add(order);
                    }
                }
            }

            return res;
        }
예제 #7
0
        public JsObject objarr2table(JsArray rs, int fixedColCnt = -1)
        {
            var h   = new JsArray();
            var d   = new JsArray();
            var ret = new JsObject()
            {
                { "h", h }, { "d", d }
            };

            if (rs.Count == 0)
            {
                return(ret);
            }

            JsObject row0 = rs[0] as JsObject;

            h.AddRange(row0.Keys);
            if (fixedColCnt >= 0)
            {
                /*
                 * TODO
                 * foreach (rs as row) {
                 *      h1 = array_keys(row);
                 *      for (i=fixedColCnt; i<count(h1); ++i) {
                 *              if (array_search(h1[i], h) === false) {
                 *                      h[] = h1[i];
                 *              }
                 *      }
                 * }
                 */
            }
            foreach (JsObject row in rs)
            {
                var arr = new JsArray();
                d.Add(arr);
                foreach (string k in h)
                {
                    arr.Add(row[k]);
                }
            }
            return(ret);
        }
예제 #8
0
        private static void Compile_Phase2()
        {
            _NewJsTypes = new JsArray <JsType>();
            for (var i = 0; i < JsTypes.length; i++)
            {
                var jsType = JsTypes[i];
                Compile_Phase2_TmpType(jsType);
            }
            foreach (var ce in JsTypes)
            {
                if (ce.cctor != null)
                {
                    ce.cctor.As <JsAction>()();
                }
            }
            JsTypes = new JsArray <JsType>();

            NewTypes = new JsArray <Type>();
            foreach (JsType jsType in _NewJsTypes)
            {
                NewTypes.Add(Type.GetType(jsType.fullname));
            }
        }
예제 #9
0
        // return: JsObject or JsArray
        public object readerToCol(DbDataReader rd, bool assoc)
        {
            object ret = null;

            if (assoc)
            {
                var jsobj = new JsObject();
                for (int i = 0; i < rd.FieldCount; ++i)
                {
                    jsobj[rd.GetName(i)] = rd.GetValue(i);
                }
                ret = jsobj;
            }
            else
            {
                var jsarr = new JsArray();
                for (int i = 0; i < rd.FieldCount; ++i)
                {
                    jsarr.Add(rd.GetValue(i));
                }
                ret = jsarr;
            }
            return(ret);
        }
예제 #10
0
        private void requestGetUsers(JsAction complete)
        {
            JsService.Inst.UsersApi.GetUsers(delegate(JsArray<ngUserModel> res) {
                JsArray<ngUserModel> tmp = new JsArray<ngUserModel>();
                foreach (ngUserModel user in res) {
                    if (-1 != user.Email.As<JsString>().indexOf("darwins")) {
                        tmp.Add(user);
                    }
                }
                ngUsers = tmp;

                if (null != complete) {
                    complete();
                }
            });
        }
예제 #11
0
 public string TranslateMicrosoft()
 {
     string url = "http://api.microsofttranslator.com/v2/ajax.svc/TranslateArray";
     JsArray src = new JsArray();
     src.Add(new JsAtom(sourceNew));
     string query = "from=%22ja%22&to=%22en%22&appId=%22" + UrlEncode("F84955C82256C25518548EE0C161B0BF87681F2F") + "%22&texts=" + UrlEncode(src.Serialize());
     HttpWebRequest req = CreateHTTPRequest(url + "?" + query);
     string ans = ReadAnswer(req);
     JsObject js = Json.Parse(ans);
     string result = js["0"]["TranslatedText"].ToString();
     return result;
 }
예제 #12
0
        public void SaveOptions(string filename)
        {
            JsObject data = new JsObject();
            JsArray arr = new JsArray();
            for (int i = 0; i < translators.Count; ++i)
            {
                arr.Add(Json.Parse("{\"id\":" + translators[i].id + ", \"inUse\":" + (translators[i].inUse ? "1" : "0") + "}"));
            }
            data["translators"] = arr;

            foreach (KeyValuePair<string, ColorRecord> kvp in colors)
            {
                data["colors"].num[kvp.Key] = kvp.Value.color.ToArgb();
            }

            saveOpt(data, "wordParseMethod");
            saveOpt(data, "JDicServer");
            saveOpt(data, "alwaysOnTop");
            saveOpt(data, "checkDouble");
            saveOpt(data, "checkRepeatingPhrases");
            saveOpt(data, "checkRepeatingPhrasesAdv");
            saveOpt(data, "replaceSuffixes");
            saveOpt(data, "excludeSpeakers");
            saveOpt(data, "excludeSpeakersPattern");
            saveOpt(data, "messageDelay");
            saveOpt(data, "maxSourceLength");
            data.str["font"] = new FontConverter().ConvertToString(font);
            data.str["tooltipFont"] = new FontConverter().ConvertToString(tooltipFont);
            saveOpt(data, "translateToOtherLanguage");
            saveOpt(data, "translateLanguage");
            saveOpt(data, "noUseSecondTranslate");
            saveOpt(data, "useCache");
            saveOpt(data, "displayOriginal");
            saveOpt(data, "displayFixed");
            saveOpt(data, "bottomLayerOpacity");
            saveOpt(data, "displayReadings");
            saveOpt(data, "appendBottom");
            saveOpt(data, "dropShadow");
            saveOpt(data, "usePromt");
            saveOpt(data, "furiganaRomaji");
            saveOpt(data, "maxBlocks");
            saveOpt(data, "largeMargins");
            saveOpt(data, "marginSize");
            saveOpt(data, "hivemindServer");
            saveOpt(data, "toolbarVisible");
            saveOpt(data, "monitorNewThreads");
            saveOpt(data, "includeOkurigana");
            saveOpt(data, "clipboardMonitoring");
            saveOpt(data, "clipboardMonitoringJapanese");

            File.WriteAllText(filename, data.Serialize());
        }
예제 #13
0
        public JsArray param_varr(string str, string type, string name)
        {
            JsArray ret       = new JsArray();
            var     elemTypes = new List <ElemType>();

            foreach (var t in type.Split(':'))
            {
                int tlen = t.Length;
                if (tlen == 0)
                {
                    throw new MyException(E_SERVER, string.Format("bad type spec: `{0}`", type));
                }
                bool   optional = false;
                string t1       = t;
                if (t[tlen - 1] == '?')
                {
                    t1       = t.Substring(0, tlen - 1);
                    optional = true;
                }
                elemTypes.Add(new ElemType()
                {
                    type = t1, optional = optional
                });
            }
            int colCnt = elemTypes.Count;

            foreach (var row0 in str.Split(','))
            {
                var row = row0.Split(new char[] { ':' }, colCnt);
                Array.Resize(ref row, colCnt);

                /*
                 * while (row.Length < colCnt) {
                 *      row[] = null;
                 * }
                 */

                var row1 = new JsArray();
                for (int i = 0; i < row.Length; ++i)
                {
                    var e = row[i];
                    var t = elemTypes[i];
                    if (e == null || e.Length == 0)
                    {
                        if (t.optional)
                        {
                            row1.Add(null);
                            continue;
                        }
                        throw new MyException(E_PARAM, string.Format("Bad Request - param `{0}`: list({1}). require col: `{2}`[{3}]", name, type, row0, i));
                    }
                    string v = htmlEscape(e);
                    if (t.type == "i")
                    {
                        int ival;
                        if (!int.TryParse(v, out ival))
                        {
                            throw new MyException(E_PARAM, string.Format("Bad Request - param `{0}`: list({1}). require integer col: `{2}`[{3}]=`{4}`.", name, type, row0, ival, v));
                        }
                        row1.Add(ival);
                    }
                    else if (t.type == "n")
                    {
                        decimal n;
                        if (!decimal.TryParse(v, out n))
                        {
                            throw new MyException(E_PARAM, string.Format("Bad Request - param `{0}`: list({1}). require numberic col: `{2}`[{3}]=`{4}`.", name, type, row0, i, v));
                        }
                        row1.Add(n);
                    }
                    else if (t.type == "b")
                    {
                        bool b;
                        if (!tryParseBool(v, out b))
                        {
                            throw new MyException(E_PARAM, string.Format("Bad Request - param `{0}`: list({1}). require boolean col: `{2}`[{3}]=`{4}`.", name, type, row0, i, v));
                        }
                        row1.Add(b);
                    }
                    else if (t.type == "s")
                    {
                        row1.Add(v);
                    }
                    else if (t.type == "dt" || t.type == "tm")
                    {
                        DateTime dt;
                        if (!DateTime.TryParse(v, out dt))
                        {
                            throw new MyException(E_PARAM, string.Format("Bad Request - param `{0}`: list({1}). require datetime col: `{2}`[{3}]=`{4}`.", name, t.type, row0, i, v));
                        }
                        row1.Add(dt);
                    }
                    else
                    {
                        throw new MyException(E_SERVER, string.Format("unknown elem type `{0}` for param `{1}`: list({2})", t.type, name, v));
                    }
                }
                ret.Add(row1);
            }
            if (ret.Count == 0)
            {
                throw new MyException(E_PARAM, "Bad Request - list param `{0}` is empty.", name);
            }
            return(ret);
        }