Inheritance: System.Web.UI.Page
        public void Apply_DadoFiltroComOrderSorts_DeveRetornar(Restful.Query.Filter.Filters.Ordering.OrderByDirection sorts, OrderByDirection expected)
        {
            _filterStub
                .Setup(p => p.OrderBy)
                .Returns(new Restful.Query.Filter.Filters.Ordering.OrderBy(new List<Restful.Query.Filter.Filters.Ordering.Field>
                {
                    new Restful.Query.Filter.Filters.Ordering.Field("", sorts)
                }));

            var orderDirection = new OrderDirection();

            var actual = orderDirection.Apply(_filterStub.Object);

            actual.Should().Be(expected);
        }
Ejemplo n.º 2
0
        public static UsageResults GetUsage(string AccountName, string Username, string Password, string Bucket = "month")
        {
            if (AccountName == null || Bucket == null)
            {
                throw new ArgumentNullException(null, "Required parameter missing");
            }

            var endPoint = @"https://gnip-api.twitter.com/metrics/usage/accounts/" + AccountName + ".json";

            try
            {
                string content = "";

                var fullEndPoint = endPoint + "?bucket=" + Bucket;
                Debug.WriteLine("fullEndPoint = |" + fullEndPoint + "|");


                var resultCode = Restful.GetRestResponse("Get", fullEndPoint, Username, Password, out content);
                if (resultCode == HttpStatusCode.OK)
                {
                    var searchResult = JsonConvert.DeserializeObject <UsageResults>(content.ToString());
                    if (searchResult.account != null)
                    {
                        return(searchResult);
                    }
                    // else (no data to return, but not an error)
                    return(null);
                }
                else
                {
                    var result = new UsageResults()
                    {
                        ErrorMessage = "Invalid HTTP Response code." + resultCode + " " + content,
                        hasError     = true
                    };
                    return(result);
                }
            }
            catch (Exception ex)
            {
                var result = new UsageResults()
                {
                    ErrorMessage = ex.Message,
                    hasError     = true
                };
                return(result);
            }
        }
Ejemplo n.º 3
0
        public IList <ClinicResult> GetListClinic(string type, string orderByName, string keyWords, int start = 0, int length = int.MaxValue)
        {
            var url  = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetListClinic);
            var data = new
            {
                Type        = type,
                Start       = start,
                Limit       = length,
                OrderByName = string.IsNullOrEmpty(orderByName) ? "" : orderByName.ToUpper(),
                Keywords    = string.IsNullOrEmpty(keyWords) ? "" : keyWords
            };
            var result = Restful.Post(url, null, data);

            _total = result["Total"].ToObject <int>();
            return(result.GetList <ClinicResult>(ApiKeyData.Clinics));
        }
Ejemplo n.º 4
0
        public BankModel GetBankAccount(string clinicId)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetBankAccount, clinicId);

            return(Restful.Get(url, null).Get <BankModel>(ApiKeyData.BankAccount));
        }
Ejemplo n.º 5
0
        public void AddOrEditBank(BankModel model)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.AddOrEditBankAccount;

            Restful.Post(url, null, model);
        }
Ejemplo n.º 6
0
        public IList <PriceModel> Get(string clinicId)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.ListPricing, clinicId);

            return(Restful.Get(url, null).GetList <PriceModel>(ApiKeyData.Pricing));
        }
Ejemplo n.º 7
0
        protected DataEventArgs Call(string name, string methodname, string code, dynamic parameters, ref bool keeplive)
        {
            long contentleng = 0;

            LastParam = parameters.ToString();
            _log.Error(parameters.ToString());
            LastRunTime = DateTime.Now;
            LastMethod  = methodname;

            DataEventArgs ea = new DataEventArgs();

            taskId++;
            ea.TaskId = taskId;
            if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(code))
            {
                ea.StatusCode = StatusCode.NoExit;
                ea.LastError  = "方法不存在";
                ea.Json       = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}";
                return(ea);
            }
            if (string.IsNullOrEmpty(methodname) && string.IsNullOrEmpty(code))
            {
                ea.StatusCode = StatusCode.NoExit;
                ea.LastError  = "方法不存在";
                ea.Json       = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}";
                return(ea);
            }
            MethodInfo method = null;
            string     keyvl  = code;

            if (string.IsNullOrEmpty(code))
            {
                #region 地址请求
                try
                {
                    lock (_memberInfos)
                    {
                        foreach (KeyValuePair <string, Tuple <string, MethodInfo, int, long> > kv in _memberInfos)
                        {
                            object[] clazz     = kv.Value.Item2.DeclaringType.GetCustomAttributes(typeof(Restful), true);
                            string   clazzpath = string.Empty;
                            if (clazz != null && clazz.Length > 0 && ((Restful)clazz[0]).Path != null)
                            {
                                if (((Restful)clazz[0]).Path != null)
                                {
                                    clazzpath = ((Restful)clazz[0]).Path.ToLower();
                                }
                            }

                            string clazzname = kv.Value.Item1.ToString().ToLower();
                            if (clazzname == name || (!string.IsNullOrEmpty(clazzpath) && clazzpath == name))
                            {
                                string   kvmethod = kv.Value.Item2.Name.ToLower();
                                string   path     = string.Empty;
                                object[] cattri   = kv.Value.Item2.GetCustomAttributes(typeof(Restful), true);
                                if (null != cattri && cattri.Length > 0)
                                {
                                    Restful rf = (Restful)cattri[0];
                                    if (rf.Path != null)
                                    {
                                        path     = rf.Path.ToLower();
                                        keeplive = rf.KeepAlive;
                                    }
                                }

                                if (kvmethod == methodname.ToLower() || (!string.IsNullOrEmpty(path) && path == methodname.ToLower()))
                                {
                                    List <object> param = new List <object>();

                                    try
                                    {
                                        foreach (ParameterInfo para in kv.Value.Item2.GetParameters())
                                        {
                                            param.Add(parameters[para.Name]);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex.Message);
                                        break;
                                    }
                                    parameters = param;
                                    int i = 0;
                                    foreach (ParameterInfo para in kv.Value.Item2.GetParameters())
                                    {
                                        object o = param[i];
                                        if (para.ParameterType.Name != o.GetType().Name)
                                        {
                                            break;
                                        }
                                        i++;
                                    }
                                    if (kv.Value.Item2.GetParameters().Length == param.Count)
                                    {
                                        keyvl  = kv.Key;
                                        name   = kv.Value.Item1;
                                        method = kv.Value.Item2;

                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    _log.Error(ex);
                    Console.WriteLine(ex);
                }
                #endregion
            }

            else
            {
                List <object> _param = new List <object>();
                foreach (object o in parameters)
                {
                    _param.Add(o);
                }
                parameters = _param;
                if (_memberInfos.ContainsKey(code))
                {
                    name   = _memberInfos[code].Item1;
                    method = _memberInfos[code].Item2;
                }
                else
                {
                    ea.StatusCode = StatusCode.NoExit;
                    ea.LastError  = "方法不存在";
                    ea.Json       = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}";
                    return(ea);
                }
            }
            if (method == null)
            {
                ea.StatusCode = StatusCode.NoExit;
                ea.LastError  = "方法不存在";
                ea.Json       = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}";
                return(ea);
            }

            try
            {
                parameters = new MethodParam().CorrectParameters(method, parameters);
                object[] arrparam = parameters.ToArray();
                Object   bll      = ApplicationContext.GetObject(name);
                var      result   = method.Invoke(bll, arrparam);

                JsonSerializerSettings jsonsetting = new JsonSerializerSettings();
                jsonsetting.Formatting = Formatting.Indented;

                ea.StatusCode = StatusCode.Success;
                ea.Param      = new System.Collections.ArrayList();
                if (flagrpc)
                {
                    ea.Binary   = new JsonSerializer().ToBinary(result);
                    contentleng = ea.Binary.Buffer.LongLength;
                }
                else
                {
                    string data = JsonConvert.SerializeObject(result, jsonsetting);
                    contentleng = data.Length;
                    ea.Json     = "{\"responseCode\":" + (int)StatusCode.Success + ",\"responseMsg\":\"成功\",\"responseData\":" + data + "}";
                }
                for (int i = 0; i < arrparam.Length; i++)
                {
                    try
                    {
                        ea.Param.Add(arrparam[i]);
                    }
                    catch (Exception ex)
                    {
                        Console.Write(ex);
                    }
                }
                Console.WriteLine(ea.TaskId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                _log.Error(ex);
                Console.WriteLine(ex);
                ea.LastError  = ex.InnerException.Message + "\r\n" + ex.Message;
                ea.StatusCode = StatusCode.Serious;
            }
            _memberInfos[keyvl] = new Tuple <string, MethodInfo, int, long>(_memberInfos[keyvl].Item1, _memberInfos[keyvl].Item2, _memberInfos[keyvl].Item3 + 1, _memberInfos[keyvl].Item3 + contentleng);
            return(ea);
        }
Ejemplo n.º 8
0
        private string HtmlHelp(string _url)
        {
            try
            {
                int number = 0;
                Dictionary <string, Tuple <string, MethodInfo, int, long> > dic = new Dictionary <string, Tuple <string, MethodInfo, int, long> >(MemberInfos);
                StringBuilder sb = new StringBuilder();
                sb.Append("<!DOCTYPE html>");
                sb.Append(@"<html lang = ""en"">");
                sb.Append(@"<meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" />");
                sb.Append(@"<head>");
                sb.Append(@"<link href=""//echarts.baidu.com/echarts2/doc/asset/css/bootstrap.css"" rel=""stylesheet"">");
                sb.Append(@" </head><body>");
                sb.Append(@"<div class=""navbar navbar-default"" role=""navigation"" id=""head""> <div class=""container""><div class=""navbar - header"">UcAsp.NET</div></div></div>");

                sb.Append(@"<div class=""panel-group"" id=""accordion"">");
                lock (dic)
                {
                    foreach (KeyValuePair <string, Tuple <string, MethodInfo, int, long> > kv in dic.OrderBy(o => o.Value.Item1))
                    {
                        object[] clazz     = kv.Value.Item2.DeclaringType.GetCustomAttributes(typeof(Restful), true);
                        string   clazzpath = string.Empty;
                        string   path      = kv.Value.Item2.Name;



                        object[] cattri = kv.Value.Item2.GetCustomAttributes(typeof(Restful), true);
                        if (clazz != null && clazz.Length > 0)
                        {
                            if (null != cattri && cattri.Length > 0)
                            {
                                UcAsp.RPC.Restful rf = (UcAsp.RPC.Restful)cattri[0];

                                if (rf.NoRest)
                                {
                                    continue;
                                }
                                if (rf.Path != null)
                                {
                                    path = rf.Path.ToLower();
                                }
                            }
                            string apixml   = kv.Value.Item2.Module.FullyQualifiedName.Replace(".dll", "") + ".xml";
                            string filename = kv.Value.Item2.DeclaringType.FullName + "." + kv.Value.Item2.Name;
                            int    len      = kv.Value.Item2.GetParameters().Length;
                            if (len > 0)
                            {
                                filename += "(";
                                for (int i = 0; i < len; i++)
                                {
                                    ParameterInfo _param = kv.Value.Item2.GetParameters()[i];
                                    if (i != len - 1)
                                    {
                                        filename += _param.ParameterType.FullName + ",";
                                    }
                                    else
                                    {
                                        filename += _param.ParameterType.FullName;
                                    }
                                }

                                filename += ")";
                            }
                            string helptxt = string.Empty;
                            if (File.Exists(apixml))
                            {
                                XmlDocument doc = new XmlDocument();
                                doc.Load(apixml);
                                XmlNode xn = doc.SelectSingleNode("/doc/members/member[@name=\"M:" + filename + "\"]");
                                if (xn != null)
                                {
                                    helptxt = xn.InnerText;
                                }
                            }
                            number++;
                            sb.Append(@"<div class=""panel panel-default""><div class=""panel-heading"">");
                            sb.AppendFormat(@"<!--div class=""list-group-item"">{0} </div--> <h4 class=""panel-title""><a href=""#collapse" + number + @""" data-toggle=""collapse"" data-parent=""#accordion"" ><h4>[{3}]</h4>{2}  方法名:{1}   ", kv.Value.Item1, kv.Value.Item2.Name.Replace("<", "&lt;").Replace(">", " &gt;"), helptxt, number);
                            ParameterInfo[] para = kv.Value.Item2.GetParameters();
                            sb.Append(@"(");
                            for (int x = 0; x < para.Length; x++)
                            {
                                sb.AppendFormat("{0} {1}", Proxy.GetTypeName(para[x].ParameterType).Replace("<", "&lt;").Replace(">", " &gt;"), para[x].Name.Replace("<", "&lt;").Replace(">", " &gt;"));
                                if (x != para.Length - 1)
                                {
                                    sb.Append(",");
                                }
                            }
                            sb.AppendFormat("     )  Method:POST   返回类型:{0}[自启动运行{1}次][{2}]</a>", Proxy.GetTypeName(kv.Value.Item2.ReturnType).Replace("<", "&lt;").Replace(">", " &gt;"), kv.Value.Item3, kv.Value.Item4);
                            sb.Append(@"</h4></div><div id=""collapse" + number);
                            sb.Append(@""" class=""panel-collapse collapse"">");
                            //   sb.Append(@"<div class=""list-group-item"">Example:Request Body JSON : <font color=red>[");
                            //   for (int xx = 0; xx < para.Length; xx++)
                            //   {
                            //       sb.AppendFormat("{0}", Proxy.GetTypeName(para[xx].ParameterType).Replace("<", "&lt;").Replace(">", " &gt;"));
                            //       if (xx != para.Length - 1)
                            //        {
                            //           sb.Append(",");
                            //       }
                            //   }
                            //   sb.Append(@"]</font></div>");
                            //    sb.AppendFormat(@"<div class=""list-group-item"">API URL<br />[1]:{0}/{1}<br />[2]:{0}/WEBAPI/{2}/{3} </div> ", _url, kv.Key, kv.Value.Item1, kv.Value.Item2.Name);



                            clazzpath = ((UcAsp.RPC.Restful)clazz[0]).Path.ToLower();
                            sb.Append(@"<div class=""list-group-item"">Example:Request Body JSON : <br /><font color=red  style=""word-wrap:break-word"">{");
                            for (int xx = 0; xx < para.Length; xx++)
                            {
                                sb.AppendFormat("\"{0}\":", para[xx].Name);
                                if (para[xx].ParameterType.FullName.ToString().StartsWith("System"))
                                {
                                    sb.AppendFormat(para[xx].ParameterType.Name.ToString());
                                }
                                else
                                {
                                    sb.Append("{");
                                    PropertyInfo[] ps = para[xx].ParameterType.GetProperties();
                                    int            pn = 0;
                                    foreach (PropertyInfo p in ps)
                                    {
                                        sb.Append("\"" + p.Name + "\":");
                                        if (p.PropertyType.FullName.ToString().StartsWith("System"))
                                        {
                                            sb.AppendFormat(p.PropertyType.Name.ToString());
                                        }
                                        else
                                        {
                                            sb.AppendFormat("value");
                                        }
                                        if (pn != ps.Length - 1)
                                        {
                                            sb.Append(",");
                                        }
                                        pn++;
                                    }
                                    sb.Append("}");
                                }
                                if (xx != para.Length - 1)
                                {
                                    sb.Append(",");
                                }
                            }
                            sb.Append(@"}</font><br />");//</div><div class=""list-group-item"">
                            sb.AppendFormat(@"API URL<br />[1]:{0}/WEBAPI/{1}/{2}/<br /> </div> ", _url, clazzpath, path);



                            if (null != cattri && cattri.Length > 0)
                            {
                                Restful rf = (Restful)cattri[0];
                                path = rf.Path.ToLower();
                            }
                            clazzpath = ((Restful)clazz[0]).Path.ToLower();
                            sb.Append(@"<div class=""list-group-item"">Example:WebSocket Send Data JSON : <br /><font color=red  style=""word-wrap:break-word"">{""clazz"":""" + clazzpath + @""",""method"":""" + path + @""",""param"": {");
                            for (int xx = 0; xx < para.Length; xx++)
                            {
                                sb.AppendFormat("\"{0}\":", para[xx].Name);
                                if (para[xx].ParameterType.FullName.ToString().StartsWith("System"))
                                {
                                    sb.AppendFormat(para[xx].ParameterType.Name.ToString());
                                }
                                else
                                {
                                    sb.Append("{");
                                    PropertyInfo[] ps = para[xx].ParameterType.GetProperties();
                                    int            pn = 0;
                                    foreach (PropertyInfo p in ps)
                                    {
                                        sb.Append("\"" + p.Name + "\":");
                                        if (p.PropertyType.FullName.ToString().StartsWith("System"))
                                        {
                                            sb.AppendFormat(p.PropertyType.Name.ToString());
                                        }
                                        else
                                        {
                                            sb.AppendFormat("value");
                                        }
                                        if (pn != ps.Length - 1)
                                        {
                                            sb.Append(",");
                                        }
                                        pn++;
                                    }
                                    sb.Append("}");
                                }
                                if (xx != para.Length - 1)
                                {
                                    sb.Append(",");
                                }
                            }
                            sb.Append(@"}}</font> <br />");//</div><div class=""list-group-item"">
                            sb.AppendFormat(@"API URL<br />[1]:{0}/websocket/call/<br /> </div> ", _url.Replace("http", "ws"), clazzpath, path);
                            sb.Append(@"<div  class=""list-group-item"" style=""word-wrap:break-word""> 返回数据类型(注:code-100正常,200完成,300超时,500系统错误,400服务不存在,900严重错误):<br />{""code"":200,""msg"":""成功"",""data"":");
                            if (kv.Value.Item2.ReturnType.FullName.StartsWith("System") && kv.Value.Item2.ReturnType.Name.IndexOf("`") < 0)
                            {
                                sb.AppendFormat(@"{0}", kv.Value.Item2.ReturnType.Name.ToString());
                            }
                            else
                            {
                                if (kv.Value.Item2.ReturnType.FullName.IndexOf("System.Collections") > -1)
                                {
                                    PropertyInfo[] ps = kv.Value.Item2.ReturnType.GetProperties();

                                    PropertyInfo[] items = ps[2].PropertyType.GetProperties();
                                    int            pn    = 0;
                                    sb.Append("[{");
                                    foreach (PropertyInfo p in items)
                                    {
                                        sb.Append("\"" + p.Name + "\":");
                                        if (p.PropertyType.FullName.ToString().StartsWith("System"))
                                        {
                                            sb.AppendFormat(p.PropertyType.Name.ToString());
                                        }
                                        else
                                        {
                                            sb.AppendFormat("value");
                                        }
                                        if (pn != items.Length - 1)
                                        {
                                            sb.Append(",");
                                        }
                                        pn++;
                                    }
                                    sb.Append("}]");
                                }
                                else
                                {
                                    PropertyInfo[] ps = kv.Value.Item2.ReturnType.GetProperties();
                                    int            pn = 0;
                                    sb.Append("{");
                                    foreach (PropertyInfo p in ps)
                                    {
                                        sb.Append("\"" + p.Name + "\":");
                                        if (p.PropertyType.FullName.ToString().StartsWith("System"))
                                        {
                                            sb.AppendFormat(p.PropertyType.Name.ToString());
                                        }
                                        else
                                        {
                                            sb.AppendFormat("value");
                                        }
                                        if (pn != ps.Length - 1)
                                        {
                                            sb.Append(",");
                                        }
                                        pn++;
                                    }
                                    sb.Append("}");
                                }
                            }
                            sb.Append("}</div>");
                            sb.Append(@"</div></div>");
                        }
                    }
                }
                sb.Append("</div>");

                sb.Append(@"<script src =""//libs.baidu.com/jquery/2.1.1/jquery.min.js""></script>");
                sb.Append(@"<script src=""//echarts.baidu.com/echarts2/doc/asset/js/bootstrap.min.js""></script>");
                sb.Append("</body></html>");
                return(sb.ToString());
            }
            catch (Exception ex)
            {
                return(ex.StackTrace.ToString());
            }
        }
Ejemplo n.º 9
0
        public void CheckExpired(ApiHeader apiHeader, string hash, string email)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.CheckExpired, hash, email);

            Restful.Get(url, apiHeader);
        }
Ejemplo n.º 10
0
        public void ApproveClinic(ApiHeader apiHeader, string id)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.ApproveClinic, id);

            Restful.Get(url, apiHeader);
        }
Ejemplo n.º 11
0
        public void SignUp(SignUpModel model)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.SignUp;

            Restful.Post(url, null, model);
        }
Ejemplo n.º 12
0
        public HospitalModel GetById(ApiHeader apiHeader, string id)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetClinic, id);

            return(Restful.Get(url, apiHeader).Get <HospitalModel>(ApiKeyData.Hospital));
        }
Ejemplo n.º 13
0
        public void NotifyClinic(ApiHeader apiHeader, NotifyClinicModel model)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.NotifyClinic;

            Restful.Post(url, apiHeader, model);
        }
Ejemplo n.º 14
0
 public Filter(Restful.Query.Filter.Filter filter)
 {
     _filter = filter;
 }