コード例 #1
0
 internal static string GenerateRegexForURL(ModelListMethod mlm, MethodInfo mi)
 {
     Logger.Debug("Generating regular expression for model list method at path " + mlm.Path);
     string ret = "^(GET\t";
     if (mlm.Host == "*")
         ret += ".+";
     else
         ret+=mlm.Host;
     if (mi.GetParameters().Length > 0)
     {
         ParameterInfo[] pars = mi.GetParameters();
         string[] regexs = new string[pars.Length];
         for (int x = 0; x < pars.Length; x++)
         {
             Logger.Trace("Adding parameter " + pars[x].Name+"["+pars[x].ParameterType.FullName+"]");
             regexs[x] = _GetRegexStringForParameter(pars[x]);
         }
         string path = string.Format((mlm.Path+(mlm.Paged ? (mlm.Path.Contains("?") ? "&" : "?")+"PageStartIndex={"+(regexs.Length-3).ToString()+"}&PageSize={"+(regexs.Length-2).ToString()+"}" : "")).Replace("?","\\?"), regexs);
         ret += (path.StartsWith("/") ? path : "/" + path).TrimEnd('/');
     }
     else
         ret += (mlm.Path.StartsWith("/") ? mlm.Path : "/" + mlm.Path).Replace("?", "\\?").TrimEnd('/');
     Logger.Trace("Regular expression constructed: " + ret + ")$");
     return ret+")$";
 }
コード例 #2
0
 public sModelListCall(ModelListMethod mlm, MethodInfo method)
 {
     _isPaged = mlm.Paged;
     _path = mlm.Path;
     _reg = new Regex(URLUtility.GenerateRegexForURL(mlm, method),RegexOptions.ECMAScript|RegexOptions.Compiled);
     _method = method;
 }
コード例 #3
0
 internal static string CreateJavacriptUrlCode(ModelListMethod mlm,MethodInfo mi, Type modelType)
 {
     Logger.Debug("Creating the javascript url call for the model list method at path " + mlm.Path);
     ParameterInfo[] pars = mi.GetParameters();
     if (pars.Length > 0)
     {
         string[] pNames = new string[pars.Length];
         for (int x = 0; x < (mlm.Paged ? pars.Length -3 : pars.Length); x++)
         {
             StringBuilder sb = new StringBuilder();
             sb.Append("'+(");
             if (pars[x].ParameterType == typeof(bool))
                 sb.AppendFormat("{0}==undefined ? 'false' : ({0}==null ? 'false' : ({0} ? 'true' : 'false')))+'",pars[x].Name);
             else if (pars[x].ParameterType == typeof(DateTime))
                 sb.AppendFormat("{0}==undefined ? 'NULL' : ({0}==null ? 'NULL' : _.extractUTCDate({0})))+'",pars[x].Name);
             else
                 sb.AppendFormat("{0}==undefined ? 'NULL' : ({0} == null ? 'NULL' : {0}))+'",pars[x].Name);
             pNames[x] = sb.ToString();
         }
         return "var url='" + string.Format((mlm.Path.StartsWith("/") ? mlm.Path : "/" + mlm.Path).TrimEnd('/'), pNames) + "';";
     }
     else
         return "var url='" + (mlm.Path.StartsWith("/") ? mlm.Path : "/" + mlm.Path).TrimEnd('/') + "';";
 }