Example #1
0
          public static MRule Parse(string s)
          {
              MRule rule = new MRule();

              string[] buf = s.Split('>');
              if (buf.Length == 2)
              {
                  if (buf[1].Length == 0)
                  {
                      rule.end = false;
                      rule.A   = buf[0];
                      rule.B   = buf[1];
                      return(rule);
                  }
                  if (buf[1][0] == '.')
                  {
                      rule.end = true;
                      rule.B   = buf[1].Substring(1);
                  }
                  else
                  {
                      rule.B = buf[1];
                  }
                  rule.A = buf[0];
                  return(rule);
              }
              else
              {
                  throw new Exception();
              }
          }
Example #2
0
        public bool InsertIntoRule(MRule objrules)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("insert into tb_rule (id,content) values(@ID,@RuleContent)");
            SqlParameter[] param =
            {
                SQLDbHelper.GetParameter("@ID",          SqlDbType.Int,          4, "id", objrules.ID),
                SQLDbHelper.GetParameter("@RuleContent", SqlDbType.Text, "content", objrules.RuleContent)
            };
            bool is_succeed = SQLDbHelper.ExecuteSql(sb.ToString(), param);

            if (is_succeed)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #3
0
        public bool UpdateRuleContentByID(MRule objrules)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("update tb_rule set content=@RuleContent where id=@ID");
            SqlParameter[] param =
            {
                SQLDbHelper.GetParameter("@RuleContent", SqlDbType.Text, "content", objrules.RuleContent),
                SQLDbHelper.GetParameter("@ID",          SqlDbType.Int,          4, "id", objrules.ID)
            };
            bool is_succeed = SQLDbHelper.ExecuteSql(sb.ToString(), param);

            if (is_succeed)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #4
0
        private static string[] argParse(JArray arr)
        {
            var strList = new List <string>(arr.Count);

            foreach (var item in arr)
            {
                if (item is JObject)
                {
                    bool allow = true;

                    if (item["rules"] is JArray rules)
                    {
                        allow = MRule.CheckOSRequire(rules);
                    }

                    var value = item["value"] ?? item["values"];

                    if (allow && value != null)
                    {
                        if (value is JArray)
                        {
                            foreach (var str in value)
                            {
                                strList.Add(str.ToString());
                            }
                        }
                        else
                        {
                            strList.Add(value.ToString());
                        }
                    }
                }
                else
                {
                    strList.Add(item.ToString());
                }
            }

            return(strList.ToArray());
        }
Example #5
0
        public static MLibrary[] ParseJsonObject(JObject item)
        {
            try
            {
                var list = new List <MLibrary>(2);

                var name      = item["name"]?.ToString();
                var isRequire = true;

                // check rules array
                var rules = item["rules"];
                if (CheckOSRules && rules != null)
                {
                    isRequire = MRule.CheckOSRequire((JArray)rules);
                }

                // forge clientreq
                var req = item["clientreq"]?.ToString();
                if (req != null && req.ToLower() != "true")
                {
                    isRequire = false;
                }

                // support TLauncher
                var artifact    = item["artifact"] ?? item["downloads"]?["artifact"];
                var classifiers = item["classifies"] ?? item["downloads"]?["classifiers"];
                var natives     = item["natives"];

                // NATIVE library
                if (natives != null)
                {
                    var nativeId = natives[MRule.OSName]?.ToString()?.Replace("${arch}", MRule.Arch);

                    if (classifiers != null && nativeId != null)
                    {
                        JObject lObj = (JObject)classifiers[nativeId];
                        list.Add(createMLibrary(name, nativeId, isRequire, lObj));
                    }
                    else
                    {
                        list.Add(createMLibrary(name, nativeId, isRequire, new JObject()));
                    }
                }

                // COMMON library
                if (artifact != null)
                {
                    var obj = createMLibrary(name, "", isRequire, (JObject)artifact);
                    list.Add(obj);
                }

                // library
                if (artifact == null && natives == null)
                {
                    var obj = createMLibrary(name, "", isRequire, item);
                    list.Add(obj);
                }

                return(list.ToArray());
            }
            catch
            {
                return(null);
            }
        }
Example #6
0
 public bool InsertIntoRule(MRule objrules)
 {
     return(rules.InsertIntoRule(objrules));
 }
Example #7
0
 public bool UpdateRuleContentByID(MRule objrules)
 {
     return(rules.UpdateRuleContentByID(objrules));
 }
Example #8
0
 public void AddRule(string s)
 {
     rules.Add(MRule.Parse(s));
 }