public static void Init() { var kernel = Registration.GetKernel(); var resolver = new NinjectDependencyResolver(kernel); var apiResolver = new ApiResolver(kernel); System.Web.Mvc.DependencyResolver.SetResolver(resolver); GlobalConfiguration.Configuration.DependencyResolver = apiResolver; }
protected virtual string ResolveRootUrl <T>(HttpVerb httpVerb) { string baseUrl = String.Empty; if (ApiResolver != null) { baseUrl = ApiResolver.BaseUrl <T>(httpVerb); } return(baseUrl); }
/// <summary> /// Resolves an Elasticsearch version using either (version | version-snapshot | 'latest' | 'latest-MAJORVERSION') /// </summary> public static ElasticVersion From(string managedVersionString) { ArtifactBuildState GetReleaseState(string s) => s.EndsWith("-SNAPSHOT") ? ArtifactBuildState.Snapshot : ApiResolver.IsReleasedVersion(s) ? ArtifactBuildState.Released : ArtifactBuildState.BuildCandidate; if (string.IsNullOrWhiteSpace(managedVersionString)) { return(null); } var version = managedVersionString; var state = GetReleaseState(version); var buildHash = string.Empty; switch (managedVersionString) { case string _ when managedVersionString.StartsWith("latest-", StringComparison.OrdinalIgnoreCase): var major = int.Parse(managedVersionString.Replace("latest-", "")); version = SnapshotApiResolver.LatestReleaseOrSnapshotForMajor(major).ToString(); state = GetReleaseState(version); if (state == ArtifactBuildState.BuildCandidate) { buildHash = ApiResolver.LatestBuildHash(version); } break; case string _ when managedVersionString.EndsWith("-snapshot", StringComparison.OrdinalIgnoreCase): state = ArtifactBuildState.Snapshot; break; case string _ when TryParseBuildCandidate(managedVersionString, out var v, out buildHash): state = ArtifactBuildState.BuildCandidate; version = v; break; case "latest": version = SnapshotApiResolver.LatestReleaseOrSnapshot.ToString(); state = GetReleaseState(version); break; } return(new ElasticVersion(version, state, buildHash)); }
/// <summary> /// 注册ApiExplorer生成服务 /// </summary> /// <param name="app"></param> /// <param name="configureOptions"></param> /// <param name="apiExplorerGenerateProvider"></param> /// <returns></returns> public static HttpApplication AddApiExplorerGenerator(this HttpApplication app, Action <ApiExplorerGeneratorOptions> configureOptions, IGenerateProvider apiExplorerGenerateProvider = null) { configureOptions?.Invoke(generatorOptions); if (apiExplorerGenerateProvider == null) { var apiExplorer = GlobalConfiguration.Configuration.Services.GetApiExplorer(); var jsonSerializerSettings = new Newtonsoft.Json.JsonSerializerSettings(); var xmlDocmentationReader = new DefaultXmlDocmentationReader(generatorOptions); var typeRegister = new DefaultTypeRegister(jsonSerializerSettings, xmlDocmentationReader); var apiResolver = new ApiResolver(apiExplorer, jsonSerializerSettings, generatorOptions, typeRegister, xmlDocmentationReader); var apiSerializer = new DefaultApiSerializer(); apiExplorerGenerateProvider = new GenerateProvider(apiResolver, apiSerializer, typeRegister, xmlDocmentationReader); } generateProvider = apiExplorerGenerateProvider; return(app); }
protected virtual Protocol ResolveProtocol <T>(HttpVerb httpVerb) { return(ApiResolver != null?ApiResolver.Protocol <T>(httpVerb) : Protocol.Http); }
protected virtual string ResolveUrl <T>(HttpVerb httpVerb) { string url = ApiResolver != null?ApiResolver.Url <T>(httpVerb) : Activator.CreateInstance <T>().GetType().Name.ToLower(); return(url); }