private List <MethodViewModel> GetMethod(Type type, string MethodPathBase) { if (type == typeof(KScriptExtension)) { return(new List <MethodViewModel>()); } var methods = new List <MethodViewModel>(); var allmethods = Kooboo.Lib.Reflection.TypeHelper.GetPublicMethods(type); foreach (var item in allmethods) { var requirepara = item.GetCustomAttribute(typeof(Kooboo.Attributes.SummaryIgnore)); if (requirepara == null) { var model = new MethodViewModel(); model.Name = MethodPathBase + "." + item.Name; var paras = item.GetParameters(); foreach (var p in paras) { model.Parameters.Add(p.Name, p.ParameterType.Name); } model.ReturnType = item.ReturnType; if (item.ReturnType != typeof(void)) { if (item.ReturnType.IsClass && item.ReturnType != typeof(string)) { var SampleResponseData = Kooboo.Lib.Development.FakeData.GetFakeValue(item.ReturnType); model.Sample = Kooboo.Lib.Helper.JsonHelper.Serialize(SampleResponseData); } } methods.Add(model); } } return(methods); }
private List <MethodViewModel> GetRepositoryMethod(Type type, string MethodPathBase) { var methods = new List <MethodViewModel>(); var repo = Activator.CreateInstance(type) as IRepository; bool isRoutable = Kooboo.Attributes.AttributeHelper.IsRoutable(repo.ModelType); var allmethods = Kooboo.Lib.Reflection.TypeHelper.GetPublicMethods(type); var takeMethods = new List <string>(); if (isRoutable) { takeMethods.Add("GetByUrl"); } takeMethods.Add("Get"); takeMethods.Add("All"); foreach (var methodname in takeMethods) { var finds = allmethods.FindAll(o => o.Name == methodname); if (finds == null || finds.Count() == 0) { continue; } var item = finds[0]; int paracount = item.GetParameters().Count(); foreach (var f in finds) { var count = f.GetParameters().Count(); if (count < paracount) { item = f; paracount = count; } } var model = new MethodViewModel(); model.Name = MethodPathBase + "." + item.Name; var paras = item.GetParameters(); foreach (var p in paras) { model.Parameters.Add(p.Name, p.ParameterType.Name); } model.ReturnType = item.ReturnType; if (item.ReturnType != typeof(void)) { if (item.ReturnType.IsClass && item.ReturnType != typeof(string)) { var SampleResponseData = Kooboo.Lib.Development.FakeData.GetFakeValue(item.ReturnType); model.Sample = Kooboo.Lib.Helper.JsonHelper.Serialize(SampleResponseData); } } methods.Add(model); } return(methods); }