Browse Source

Refactored.

pull/96/head
Halil İbrahim Kalkan 9 years ago
parent
commit
b7adb82418
  1. 1
      src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs
  2. 13
      src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/ApplicationApiDescriptionModelManager.cs
  3. 5
      src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/DynamicHttpProxyInterceptor.cs
  4. 6
      src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/IApplicationApiDescriptionModelManager.cs
  5. 5
      src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs

1
src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AspNetCoreApiDescriptionModelProvider.cs

@ -73,6 +73,7 @@ namespace Volo.Abp.AspNetCore.Mvc
var actionModel = controllerModel.AddAction(new ActionApiDescriptionModel(
uniqueMethodName,
method.Name,
returnValue,
apiDescription.RelativePath,
apiDescription.HttpMethod

13
src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/ApplicationApiDescriptionModelCache.cs → src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/ApplicationApiDescriptionModelManager.cs

@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Newtonsoft.Json;
@ -10,14 +9,16 @@ using Volo.Abp.Http.Modeling;
namespace Volo.Abp.Http.DynamicProxying
{
public class ApplicationApiDescriptionModelCache : IApplicationApiDescriptionModelCache, ISingletonDependency
//TODO: Move DynamicProxying to Volo.Abp.Http.Client module
public class ApplicationApiDescriptionModelManager : IApplicationApiDescriptionModelManager, ISingletonDependency
{
private readonly IDynamicProxyHttpClientFactory _httpClientFactory;
private readonly Dictionary<string, ApplicationApiDescriptionModel> _cache;
private readonly AsyncLock _asyncLock;
public ApplicationApiDescriptionModelCache(IDynamicProxyHttpClientFactory httpClientFactory)
public ApplicationApiDescriptionModelManager(IDynamicProxyHttpClientFactory httpClientFactory)
{
_httpClientFactory = httpClientFactory;
@ -32,14 +33,14 @@ namespace Volo.Abp.Http.DynamicProxying
var model = _cache.GetOrDefault(baseUrl);
if (model == null)
{
_cache[baseUrl] = model = await GetModelFromRemoteServer(baseUrl);
_cache[baseUrl] = model = await GetFromServerAsync(baseUrl);
}
return model;
}
}
private async Task<ApplicationApiDescriptionModel> GetModelFromRemoteServer(string baseUrl)
private async Task<ApplicationApiDescriptionModel> GetFromServerAsync(string baseUrl)
{
using (var client = _httpClientFactory.Create())
{

5
src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/DynamicHttpProxyInterceptor.cs

@ -18,7 +18,7 @@ namespace Volo.Abp.Http.DynamicProxying
private static readonly MethodInfo GenericInterceptAsyncMethod;
private readonly IDynamicProxyHttpClientFactory _httpClientFactory;
private readonly IApplicationApiDescriptionModelCache _discoverManager;
private readonly IApplicationApiDescriptionModelManager _discoverManager;
private readonly AbpHttpOptions _options;
static DynamicHttpProxyInterceptor()
@ -31,7 +31,7 @@ namespace Volo.Abp.Http.DynamicProxying
public DynamicHttpProxyInterceptor(
IDynamicProxyHttpClientFactory httpClientFactory,
IOptions<AbpHttpOptions> options,
IApplicationApiDescriptionModelCache discoverManager)
IApplicationApiDescriptionModelManager discoverManager)
{
_httpClientFactory = httpClientFactory;
_discoverManager = discoverManager;
@ -61,6 +61,7 @@ namespace Volo.Abp.Http.DynamicProxying
}
var apiDescriptionModel = await _discoverManager.GetAsync(config.BaseUrl);
using (var client = _httpClientFactory.Create())
{

6
src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/IApplicationApiDescriptionModelCache.cs → src/Volo.Abp.Http/Volo/Abp/Http/DynamicProxying/IApplicationApiDescriptionModelManager.cs

@ -1,12 +1,10 @@
using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Http.Modeling;
namespace Volo.Abp.Http.DynamicProxying
{
public interface IApplicationApiDescriptionModelCache
public interface IApplicationApiDescriptionModelManager
{
Task<ApplicationApiDescriptionModel> GetAsync(string baseUrl, CancellationToken cancellationToken = default(CancellationToken));
}

5
src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs

@ -8,6 +8,8 @@ namespace Volo.Abp.Http.Modeling
{
public string Name { get; }
public string NameOnClass { get; }
public string HttpMethod { get; }
public string Url { get; }
@ -21,9 +23,10 @@ namespace Volo.Abp.Http.Modeling
}
public ActionApiDescriptionModel(string name, ReturnValueApiDescriptionModel returnValue, string url, string httpMethod = null)
public ActionApiDescriptionModel(string name, string nameOnClass, ReturnValueApiDescriptionModel returnValue, string url, string httpMethod = null)
{
Name = name;
NameOnClass = nameOnClass;
ReturnValue = returnValue;
Url = url;
HttpMethod = httpMethod;

Loading…
Cancel
Save