diff --git a/client/Lykke.Service.Assets.Client/Lykke.Service.Assets.Client.csproj b/client/Lykke.Service.Assets.Client/Lykke.Service.Assets.Client.csproj index dc5ed0c5..95ac412a 100644 --- a/client/Lykke.Service.Assets.Client/Lykke.Service.Assets.Client.csproj +++ b/client/Lykke.Service.Assets.Client/Lykke.Service.Assets.Client.csproj @@ -27,7 +27,7 @@ - + \ No newline at end of file diff --git a/src/Lykke.Service.Assets.Core/Lykke.Service.Assets.Core.csproj b/src/Lykke.Service.Assets.Core/Lykke.Service.Assets.Core.csproj index b3605e7e..4a508e26 100644 --- a/src/Lykke.Service.Assets.Core/Lykke.Service.Assets.Core.csproj +++ b/src/Lykke.Service.Assets.Core/Lykke.Service.Assets.Core.csproj @@ -6,7 +6,7 @@ 1.0.0 - - + + \ No newline at end of file diff --git a/src/Lykke.Service.Assets.Core/Services/IErcContractProcessor.cs b/src/Lykke.Service.Assets.Core/Services/IErcContractProcessor.cs index 5d4d28b5..41dd9c6f 100644 --- a/src/Lykke.Service.Assets.Core/Services/IErcContractProcessor.cs +++ b/src/Lykke.Service.Assets.Core/Services/IErcContractProcessor.cs @@ -5,6 +5,6 @@ namespace Lykke.Service.Assets.Core.Services { public interface IErcContractProcessor { - Task ProcessErc20ContractAsync(IErc20Token message); + Task ProcessErc20ContractAsync(IErc20Token token); } } diff --git a/src/Lykke.Service.Assets.Repositories/Lykke.Service.Assets.Repositories.csproj b/src/Lykke.Service.Assets.Repositories/Lykke.Service.Assets.Repositories.csproj index a90b6b7c..634b1ac1 100644 --- a/src/Lykke.Service.Assets.Repositories/Lykke.Service.Assets.Repositories.csproj +++ b/src/Lykke.Service.Assets.Repositories/Lykke.Service.Assets.Repositories.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Lykke.Service.Assets.Services/ErcContractProcessor.cs b/src/Lykke.Service.Assets.Services/ErcContractProcessor.cs index 53c27ac9..dc99a473 100644 --- a/src/Lykke.Service.Assets.Services/ErcContractProcessor.cs +++ b/src/Lykke.Service.Assets.Services/ErcContractProcessor.cs @@ -1,30 +1,25 @@ using Lykke.Service.Assets.Core.Domain; -using Lykke.Service.Assets.Core.Repositories; using Lykke.Service.Assets.Core.Services; -using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace Lykke.Service.Assets.Services { public class ErcContractProcessor : IErcContractProcessor { - private readonly IErc20TokenRepository _erc20TokenRepository; + private readonly IErc20TokenService _erc20TokenService; - public ErcContractProcessor(IErc20TokenRepository erc20TokenRepository) + public ErcContractProcessor(IErc20TokenService erc20TokenService) { - _erc20TokenRepository = erc20TokenRepository; + _erc20TokenService = erc20TokenService; } - //TODO: Add more logic here - public async Task ProcessErc20ContractAsync(IErc20Token message) + public async Task ProcessErc20ContractAsync(IErc20Token token) { - var existingContract = await _erc20TokenRepository.GetByTokenAddressAsync(message.Address); + var existingContract = await _erc20TokenService.GetByTokenAddressAsync(token.Address); if (existingContract == null) { - await _erc20TokenRepository.AddAsync(message); + await _erc20TokenService.AddAsync(token); } } } diff --git a/src/Lykke.Service.Assets.Services/Lykke.Service.Assets.Services.csproj b/src/Lykke.Service.Assets.Services/Lykke.Service.Assets.Services.csproj index f011cace..3c231b77 100644 --- a/src/Lykke.Service.Assets.Services/Lykke.Service.Assets.Services.csproj +++ b/src/Lykke.Service.Assets.Services/Lykke.Service.Assets.Services.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Lykke.Service.Assets/Cache/CacheSerializer.cs b/src/Lykke.Service.Assets/Cache/CacheSerializer.cs new file mode 100644 index 00000000..0284edff --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/CacheSerializer.cs @@ -0,0 +1,15 @@ +namespace Lykke.Service.Assets.Cache +{ + internal static class CacheSerializer + { + public static T Deserialize(byte[] settings) + { + return MessagePack.MessagePackSerializer.Deserialize(settings, MessagePack.Resolvers.ContractlessStandardResolver.Instance); + } + + public static byte[] Serialize(T settings) + { + return MessagePack.MessagePackSerializer.Serialize(settings, MessagePack.Resolvers.ContractlessStandardResolver.Instance); + } + } +} diff --git a/src/Lykke.Service.Assets/Managers/AssetCategoryManager.cs b/src/Lykke.Service.Assets/Cache/CachedAssetCategoryService.cs similarity index 53% rename from src/Lykke.Service.Assets/Managers/AssetCategoryManager.cs rename to src/Lykke.Service.Assets/Cache/CachedAssetCategoryService.cs index 762b1dee..eabe0a4b 100644 --- a/src/Lykke.Service.Assets/Managers/AssetCategoryManager.cs +++ b/src/Lykke.Service.Assets/Cache/CachedAssetCategoryService.cs @@ -1,23 +1,23 @@ using System.Collections.Generic; using System.Threading.Tasks; -using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Core.Domain; using Lykke.Service.Assets.Core.Services; +using Lykke.Service.Assets.Repositories.Entities; -namespace Lykke.Service.Assets.Managers +namespace Lykke.Service.Assets.Cache { - public class AssetCategoryManager : IAssetCategoryManager + public class CachedAssetCategoryService : ICachedAssetCategoryService { - private readonly IAssetCategoryService _assetCategoryService; - private readonly ICache _cache; + private readonly IAssetCategoryService _assetCategoryService; + private readonly DistributedCache _cache; + private const string AllEntitiesKey = "All"; - - public AssetCategoryManager( + public CachedAssetCategoryService( IAssetCategoryService assetCategoryService, - ICache cache) + DistributedCache cache) { _assetCategoryService = assetCategoryService; - _cache = cache; + _cache = cache; } public async Task AddAsync(IAssetCategory assetCategory) @@ -34,26 +34,30 @@ public async Task GetAsync(string id) public async Task> GetAllAsync() { - return await _cache.GetListAsync("All", _assetCategoryService.GetAllAsync); - } - - public async Task InvalidateCache() - { - await _cache.InvalidateAsync(); + return await _cache.GetListAsync(AllEntitiesKey, () => _assetCategoryService.GetAllAsync()); } public async Task RemoveAsync(string id) { - await InvalidateCache(); + await InvalidateCache(id); await _assetCategoryService.RemoveAsync(id); } public async Task UpdateAsync(IAssetCategory assetCategory) { - await InvalidateCache(); + await InvalidateCache(assetCategory.Id); await _assetCategoryService.UpdateAsync(assetCategory); } + + private async Task InvalidateCache(string id = null) + { + if (id != null) + { + await _cache.RemoveAsync(id); + } + await _cache.RemoveAsync(AllEntitiesKey); + } } } diff --git a/src/Lykke.Service.Assets/Managers/AssetPairManager.cs b/src/Lykke.Service.Assets/Cache/CachedAssetPairService.cs similarity index 56% rename from src/Lykke.Service.Assets/Managers/AssetPairManager.cs rename to src/Lykke.Service.Assets/Cache/CachedAssetPairService.cs index a8335332..38696191 100644 --- a/src/Lykke.Service.Assets/Managers/AssetPairManager.cs +++ b/src/Lykke.Service.Assets/Cache/CachedAssetPairService.cs @@ -1,23 +1,23 @@ using System.Collections.Generic; using System.Threading.Tasks; -using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Core.Domain; using Lykke.Service.Assets.Core.Services; +using Lykke.Service.Assets.Repositories.Entities; -namespace Lykke.Service.Assets.Managers +namespace Lykke.Service.Assets.Cache { - public class AssetPairManager : IAssetPairManager + public class CachedAssetPairService : ICachedAssetPairService { - private readonly IAssetPairService _assetPairService; - private readonly ICache _cache; + private readonly IAssetPairService _assetPairService; + private readonly DistributedCache _cache; + private const string AllEntitiesKey = "All"; - - public AssetPairManager( + public CachedAssetPairService( IAssetPairService assetPairService, - ICache cache) + DistributedCache cache) { _assetPairService = assetPairService; - _cache = cache; + _cache = cache; } public async Task AddAsync(IAssetPair assetPair) @@ -34,7 +34,7 @@ public IAssetPair CreateDefault() public async Task> GetAllAsync() { - return await _cache.GetListAsync("All", _assetPairService.GetAllAsync); + return await _cache.GetListAsync(AllEntitiesKey, _assetPairService.GetAllAsync); } public async Task GetAsync(string id) @@ -42,23 +42,27 @@ public async Task GetAsync(string id) return await _cache.GetAsync(id, () => _assetPairService.GetAsync(id)); } - public async Task InvalidateCache() - { - await _cache.InvalidateAsync(); - } - public async Task RemoveAsync(string id) { - await InvalidateCache(); + await InvalidateCache(id); await _assetPairService.RemoveAsync(id); } public async Task UpdateAsync(IAssetPair assetPair) { - await InvalidateCache(); + await InvalidateCache(assetPair.Id); await _assetPairService.UpdateAsync(assetPair); } + + private async Task InvalidateCache(string id = null) + { + if (id != null) + { + await _cache.RemoveAsync(id); + } + await _cache.RemoveAsync(AllEntitiesKey); + } } } diff --git a/src/Lykke.Service.Assets/Managers/AssetManager.cs b/src/Lykke.Service.Assets/Cache/CachedAssetService.cs similarity index 56% rename from src/Lykke.Service.Assets/Managers/AssetManager.cs rename to src/Lykke.Service.Assets/Cache/CachedAssetService.cs index 44c51b88..454ae214 100644 --- a/src/Lykke.Service.Assets/Managers/AssetManager.cs +++ b/src/Lykke.Service.Assets/Cache/CachedAssetService.cs @@ -1,25 +1,25 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Core.Domain; using Lykke.Service.Assets.Core.Services; -using Lykke.Service.Assets.Tools; +using Lykke.Service.Assets.Repositories.DTOs; -namespace Lykke.Service.Assets.Managers +namespace Lykke.Service.Assets.Cache { - public class AssetManager : IAssetManager + public class CachedAssetService : ICachedAssetService { - private readonly IAssetService _assetService; - private readonly ICache _cache; + private readonly IAssetService _assetService; + private readonly DistributedCache _cache; + private const string AllEntitiesKey = "All"; + private const string AllTradableKey = "AllTradable"; - - public AssetManager( + public CachedAssetService( IAssetService assetService, - ICache cache) + DistributedCache cache) { _assetService = assetService; - _cache = cache; + _cache = cache; } public async Task AddAsync(IAsset asset) @@ -36,35 +36,34 @@ public IAsset CreateDefault() public async Task DisableAsync(string id) { - await InvalidateCache(); + await InvalidateCache(id); await _assetService.DisableAsync(id); } public async Task EnableAsync(string id) { - await InvalidateCache(); + await InvalidateCache(id); await _assetService.EnableAsync(id); } public async Task> GetAllAsync(bool includeNonTradable) { - var listKey = includeNonTradable ? "All" : "AllTradable"; + var listKey = includeNonTradable ? AllEntitiesKey : AllTradableKey; return await _cache.GetListAsync(listKey, () => _assetService.GetAllAsync(includeNonTradable)); } public async Task> GetAsync(string[] ids, bool? isTradable) { - var listKey = ids.Any() ? ids.GetMD5() : "All"; - - if (isTradable.HasValue) + var assets = await GetAllAsync(isTradable ?? true); + if (ids.Any()) { - listKey = $"{listKey}:IsTradable_{isTradable.Value}"; + assets = assets.Where(x => ids.Contains(x.Id)); } - return await _cache.GetListAsync($"ForIdsList:{listKey}", () => _assetService.GetAsync(ids, isTradable)); + return assets; } public async Task GetAsync(string id) @@ -74,26 +73,32 @@ public async Task GetAsync(string id) public async Task> GetForCategoryAsync(string categoryId) { - return await _cache.GetListAsync($"ForCategory:{categoryId}", () => _assetService.GetForCategoryAsync(categoryId)); - } - - public async Task InvalidateCache() - { - await _cache.InvalidateAsync(); + var assets = await GetAllAsync(true); + return assets.Where(x => x.CategoryId == categoryId); } public async Task RemoveAsync(string id) { - await InvalidateCache(); + await InvalidateCache(id); await _assetService.RemoveAsync(id); } public async Task UpdateAsync(IAsset asset) { - await InvalidateCache(); + await InvalidateCache(asset.Id); await _assetService.UpdateAsync(asset); } + + private async Task InvalidateCache(string id = null) + { + if (id != null) + { + await _cache.RemoveAsync(id); + } + await _cache.RemoveAsync(AllEntitiesKey); + await _cache.RemoveAsync(AllTradableKey); + } } } diff --git a/src/Lykke.Service.Assets/Cache/CachedErc20TokenAssetService.cs b/src/Lykke.Service.Assets/Cache/CachedErc20TokenAssetService.cs new file mode 100644 index 00000000..3ea1d26f --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/CachedErc20TokenAssetService.cs @@ -0,0 +1,34 @@ +using System.Threading.Tasks; +using Lykke.Service.Assets.Core.Domain; +using Lykke.Service.Assets.Core.Services; +using Lykke.Service.Assets.Repositories.DTOs; + +namespace Lykke.Service.Assets.Cache +{ + public class CachedErc20TokenAssetService : ICachedErc20TokenAssetService + { + private readonly IErc20TokenAssetService _tokenAssetService; + private readonly DistributedCache _cache; + private const string AllEntitiesKey = "All"; + + public CachedErc20TokenAssetService( + IErc20TokenAssetService tokenAssetService, + DistributedCache cache) + { + _tokenAssetService = tokenAssetService; + _cache = cache; + } + + public async Task CreateAssetForErc20TokenAsync(string tokenAddress) + { + await InvalidateCache(); + + return await _tokenAssetService.CreateAssetForErc20TokenAsync(tokenAddress); + } + + private async Task InvalidateCache() + { + await _cache.RemoveAsync(AllEntitiesKey); + } + } +} diff --git a/src/Lykke.Service.Assets/Managers/Erc20TokenManager.cs b/src/Lykke.Service.Assets/Cache/CachedErc20TokenService.cs similarity index 53% rename from src/Lykke.Service.Assets/Managers/Erc20TokenManager.cs rename to src/Lykke.Service.Assets/Cache/CachedErc20TokenService.cs index 6002f8ae..f63c5de1 100644 --- a/src/Lykke.Service.Assets/Managers/Erc20TokenManager.cs +++ b/src/Lykke.Service.Assets/Cache/CachedErc20TokenService.cs @@ -1,55 +1,57 @@ using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; -using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Core.Domain; using Lykke.Service.Assets.Core.Services; -using System.Linq; +using Lykke.Service.Assets.Repositories.Entities; using Lykke.Service.Assets.Tools; -namespace Lykke.Service.Assets.Managers +namespace Lykke.Service.Assets.Cache { - public class Erc20TokenManager : IErc20TokenManager + public class CachedErc20TokenService : ICachedErc20TokenService { - private readonly ICache _tokenCache; private readonly IErc20TokenService _tokenService; + private readonly DistributedCache _cache; + private const string AllEntitiesKey = "All"; + private const string WithAssetsKey = "WithAssets"; - public Erc20TokenManager( + public CachedErc20TokenService( IErc20TokenService tokenService, - ICache tokenCache) + DistributedCache cache) { - _tokenCache = tokenCache; + _cache = cache; _tokenService = tokenService; } public async Task AddAsync(IErc20Token token) { - await _tokenService.AddAsync(token); await InvalidateCache(); + await _tokenService.AddAsync(token); + return token; } public async Task> GetAllAsync() { - return await _tokenCache.GetListAsync("All", _tokenService.GetAllAsync); + return await _cache.GetListAsync(AllEntitiesKey, _tokenService.GetAllAsync); } public async Task> GetByAssetIdsAsync(string[] assetIds) { - var listKey = assetIds.GetMD5(); - - return await _tokenCache.GetListAsync($"ForIdsList:{listKey}", () => _tokenService.GetByAssetIdsAsync(assetIds)); + var tokens = await GetAllWithAssetsAsync(); + return tokens.Where(x => assetIds.Contains(x.AssetId)); } public async Task GetByAssetIdAsync(string assetId) { - return await _tokenCache.GetAsync(assetId, () => _tokenService.GetByAssetIdAsync(assetId)); + return await _cache.GetAsync(assetId, () => _tokenService.GetByAssetIdAsync(assetId)); } public async Task UpdateAsync(IErc20Token token) { - await _tokenService.UpdateAsync(token); await InvalidateCache(); + await _tokenService.UpdateAsync(token); } public async Task GetByTokenAddressAsync(string tokenAddress) @@ -59,12 +61,17 @@ public async Task GetByTokenAddressAsync(string tokenAddress) public async Task> GetAllWithAssetsAsync() { - return await _tokenCache.GetListAsync("WithAssets", _tokenService.GetAllWithAssetsAsync); + return await _cache.GetListAsync(WithAssetsKey, _tokenService.GetAllWithAssetsAsync); } - public async Task InvalidateCache() + private async Task InvalidateCache(string id = null) { - await _tokenCache.InvalidateAsync(); + if (id != null) + { + await _cache.RemoveAsync(id); + } + await _cache.RemoveAsync(AllEntitiesKey); + await _cache.RemoveAsync(WithAssetsKey); } } } diff --git a/src/Lykke.Service.Assets/Cache/DistributedCache.cs b/src/Lykke.Service.Assets/Cache/DistributedCache.cs new file mode 100644 index 00000000..c0710ec0 --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/DistributedCache.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.Caching.Distributed; + +namespace Lykke.Service.Assets.Cache +{ + public class DistributedCache where T : class, I + { + private readonly IDistributedCache _cache; + private readonly string _partitionKey; + private readonly DistributedCacheEntryOptions _cacheOptions; + + public DistributedCache( + IDistributedCache cache, + TimeSpan expiration, + string partitionKey) + { + _cache = cache; + _partitionKey = partitionKey; + _cacheOptions = new DistributedCacheEntryOptions().SetAbsoluteExpiration(expiration); + } + + private string GetCacheKey(string id) + { + return $":{_partitionKey}:{id}"; + } + + public async Task GetAsync(string key, Func> factory) + { + var cached = await _cache.GetAsync(GetCacheKey(key)); + if (cached != null) + { + return CacheSerializer.Deserialize(cached); + } + + var result = await factory() as T; + if (result != null) + { + await _cache.SetAsync(GetCacheKey(key), CacheSerializer.Serialize(result), _cacheOptions); + } + return result; + } + + public async Task> GetListAsync(string key, Func>> factory) + { + var cached = await _cache.GetAsync(GetCacheKey(key)); + if (cached != null) + { + return CacheSerializer.Deserialize(cached); + } + + var result = (await factory()).Cast().ToArray(); + await _cache.SetAsync(GetCacheKey(key), CacheSerializer.Serialize(result), _cacheOptions); + return result; + } + + public async Task RemoveAsync(string id) + { + await _cache.RemoveAsync(GetCacheKey(id)); + } + } +} diff --git a/src/Lykke.Service.Assets/Cache/ICachedAssetCategoryService.cs b/src/Lykke.Service.Assets/Cache/ICachedAssetCategoryService.cs new file mode 100644 index 00000000..a5e70cd6 --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/ICachedAssetCategoryService.cs @@ -0,0 +1,9 @@ +using Lykke.Service.Assets.Core.Services; + +namespace Lykke.Service.Assets.Cache +{ + public interface ICachedAssetCategoryService : IAssetCategoryService + { + + } +} diff --git a/src/Lykke.Service.Assets/Cache/ICachedAssetPairService.cs b/src/Lykke.Service.Assets/Cache/ICachedAssetPairService.cs new file mode 100644 index 00000000..ed08ba7f --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/ICachedAssetPairService.cs @@ -0,0 +1,9 @@ +using Lykke.Service.Assets.Core.Services; + +namespace Lykke.Service.Assets.Cache +{ + public interface ICachedAssetPairService : IAssetPairService + { + + } +} diff --git a/src/Lykke.Service.Assets/Cache/ICachedAssetService.cs b/src/Lykke.Service.Assets/Cache/ICachedAssetService.cs new file mode 100644 index 00000000..fe8f600e --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/ICachedAssetService.cs @@ -0,0 +1,9 @@ +using Lykke.Service.Assets.Core.Services; + +namespace Lykke.Service.Assets.Cache +{ + public interface ICachedAssetService : IAssetService + { + + } +} diff --git a/src/Lykke.Service.Assets/Cache/ICachedErc20TokenAssetService.cs b/src/Lykke.Service.Assets/Cache/ICachedErc20TokenAssetService.cs new file mode 100644 index 00000000..c784adda --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/ICachedErc20TokenAssetService.cs @@ -0,0 +1,9 @@ +using Lykke.Service.Assets.Core.Services; + +namespace Lykke.Service.Assets.Cache +{ + public interface ICachedErc20TokenAssetService : IErc20TokenAssetService + { + + } +} diff --git a/src/Lykke.Service.Assets/Cache/ICachedErc20TokenService.cs b/src/Lykke.Service.Assets/Cache/ICachedErc20TokenService.cs new file mode 100644 index 00000000..b1db3e7e --- /dev/null +++ b/src/Lykke.Service.Assets/Cache/ICachedErc20TokenService.cs @@ -0,0 +1,9 @@ +using Lykke.Service.Assets.Core.Services; + +namespace Lykke.Service.Assets.Cache +{ + public interface ICachedErc20TokenService : IErc20TokenService + { + + } +} diff --git a/src/Lykke.Service.Assets/Controllers/v1/AssetPairsController.cs b/src/Lykke.Service.Assets/Controllers/v1/AssetPairsController.cs index 7254fe94..11c35e13 100644 --- a/src/Lykke.Service.Assets/Controllers/v1/AssetPairsController.cs +++ b/src/Lykke.Service.Assets/Controllers/v1/AssetPairsController.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Responses; using Lykke.Service.Assets.Responses.v1; using Microsoft.AspNetCore.Mvc; @@ -18,13 +18,13 @@ namespace Lykke.Service.Assets.Controllers.V1 [Route("api/[controller]")] public class AssetPairsController : Controller { - private readonly IAssetPairManager _assetPairManager; + private readonly ICachedAssetPairService _assetPairService; public AssetPairsController( - IAssetPairManager assetPairManager) + ICachedAssetPairService assetPairService) { - _assetPairManager = assetPairManager; + _assetPairService = assetPairService; } /// @@ -33,9 +33,9 @@ public AssetPairsController( /// [HttpPost("updateCache"), Obsolete] [SwaggerOperation("UpdateAssetPairsCache")] - public async Task UpdateCache() + public Task UpdateCache() { - await _assetPairManager.InvalidateCache(); + return Task.CompletedTask; } /// @@ -48,7 +48,7 @@ public async Task UpdateCache() [ProducesResponseType(typeof(ErrorResponse), (int)HttpStatusCode.NotFound)] public async Task Get(string assetPairId) { - var assetPair = await _assetPairManager.GetAsync(assetPairId); + var assetPair = await _assetPairService.GetAsync(assetPairId); if (assetPair == null) { @@ -66,7 +66,7 @@ public async Task Get(string assetPairId) [SwaggerOperation("GetAssetPairs")] public async Task GetAll() { - var assetPairs = await _assetPairManager.GetAllAsync(); + var assetPairs = await _assetPairService.GetAllAsync(); return Ok(assetPairs.Select(AssetPairResponseModel.Create)); } diff --git a/src/Lykke.Service.Assets/Controllers/v1/AssetsController.cs b/src/Lykke.Service.Assets/Controllers/v1/AssetsController.cs index 1785faf3..34ab7273 100644 --- a/src/Lykke.Service.Assets/Controllers/v1/AssetsController.cs +++ b/src/Lykke.Service.Assets/Controllers/v1/AssetsController.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Net; using System.Threading.Tasks; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Responses; using Lykke.Service.Assets.Responses.v1; using Microsoft.AspNetCore.Mvc; @@ -17,12 +17,12 @@ namespace Lykke.Service.Assets.Controllers.V1 [Route("api/[controller]")] public class AssetsController : Controller { - private readonly IAssetManager _assetManager; + private readonly ICachedAssetService _assetService; public AssetsController( - IAssetManager assetManager) + ICachedAssetService assetService) { - _assetManager = assetManager; + _assetService = assetService; } /// @@ -31,9 +31,9 @@ public AssetsController( /// [HttpPost("updateCache"), Obsolete] [SwaggerOperation("UpdateAssetsCache")] - public async Task UpdateCache() + public Task UpdateCache() { - await _assetManager.InvalidateCache(); + return Task.CompletedTask; } /// @@ -46,7 +46,7 @@ public async Task UpdateCache() [ProducesResponseType(typeof(ErrorResponse), (int)HttpStatusCode.NotFound)] public async Task Get(string assetId) { - var asset = await _assetManager.GetAsync(assetId); + var asset = await _assetService.GetAsync(assetId); if (asset == null) { @@ -64,8 +64,8 @@ public async Task Get(string assetId) [SwaggerOperation("GetAssets")] public async Task GetAll() { - var assets = await _assetManager.GetAllAsync(false); - + var assets = await _assetService.GetAllAsync(false); + return Ok(assets.Select(AssetResponseModel.Create)); } } diff --git a/src/Lykke.Service.Assets/Controllers/v2/AssetCategoriesController.cs b/src/Lykke.Service.Assets/Controllers/v2/AssetCategoriesController.cs index d27ae577..bd8ab214 100644 --- a/src/Lykke.Service.Assets/Controllers/v2/AssetCategoriesController.cs +++ b/src/Lykke.Service.Assets/Controllers/v2/AssetCategoriesController.cs @@ -3,7 +3,7 @@ using System.Net; using System.Threading.Tasks; using AutoMapper; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Responses.V2; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.SwaggerGen; @@ -13,36 +13,36 @@ namespace Lykke.Service.Assets.Controllers.V2 [Route("api/v2/asset-categories")] public class AssetCategoriesController : Controller { - private readonly IAssetCategoryManager _assetCategoryManager; + private readonly ICachedAssetCategoryService _assetCategoryService; public AssetCategoriesController( - IAssetCategoryManager assetCategoryManager) + ICachedAssetCategoryService assetCategoryService) { - _assetCategoryManager = assetCategoryManager; + _assetCategoryService = assetCategoryService; } [HttpPost] [SwaggerOperation("AssetCategoryAdd")] - [ProducesResponseType(typeof(AssetCategory), (int) HttpStatusCode.Created)] + [ProducesResponseType(typeof(AssetCategory), (int)HttpStatusCode.Created)] public async Task Add([FromBody] AssetCategory assetCategory) { - assetCategory = Mapper.Map(await _assetCategoryManager.AddAsync(assetCategory)); + assetCategory = Mapper.Map(await _assetCategoryService.AddAsync(assetCategory)); return Created ( - uri: $"api/v2/asset-categories/{assetCategory.Id}", + uri: $"api/v2/asset-categories/{assetCategory.Id}", value: assetCategory ); } [HttpGet("{id}")] [SwaggerOperation("AssetCategoryGet")] - [ProducesResponseType(typeof(AssetCategory), (int) HttpStatusCode.OK)] - [ProducesResponseType((int) HttpStatusCode.NotFound)] + [ProducesResponseType(typeof(AssetCategory), (int)HttpStatusCode.OK)] + [ProducesResponseType((int)HttpStatusCode.NotFound)] public async Task Get(string id) { - var assetCategory = await _assetCategoryManager.GetAsync(id); + var assetCategory = await _assetCategoryService.GetAsync(id); if (assetCategory != null) { @@ -56,32 +56,32 @@ public async Task Get(string id) [HttpGet] [SwaggerOperation("AssetCategoryGetAll")] - [ProducesResponseType(typeof(IEnumerable), (int) HttpStatusCode.OK)] + [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)] public async Task GetAll() { - var assetCategories = (await _assetCategoryManager.GetAllAsync()) + var assetCategories = (await _assetCategoryService.GetAllAsync()) .Select(Mapper.Map); - + return Ok(assetCategories); } [HttpDelete("{id}")] [SwaggerOperation("AssetCategoryRemove")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Remove(string id) { - await _assetCategoryManager.RemoveAsync(id); + await _assetCategoryService.RemoveAsync(id); return NoContent(); } [HttpPut] [SwaggerOperation("AssetCategoryUpdate")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Update([FromBody] AssetCategory assetCategory) { - await _assetCategoryManager.UpdateAsync(assetCategory); + await _assetCategoryService.UpdateAsync(assetCategory); return NoContent(); } diff --git a/src/Lykke.Service.Assets/Controllers/v2/AssetPairsController.cs b/src/Lykke.Service.Assets/Controllers/v2/AssetPairsController.cs index 2456a9da..d53e2b76 100644 --- a/src/Lykke.Service.Assets/Controllers/v2/AssetPairsController.cs +++ b/src/Lykke.Service.Assets/Controllers/v2/AssetPairsController.cs @@ -3,7 +3,7 @@ using System.Net; using System.Threading.Tasks; using AutoMapper; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Responses.V2; using Microsoft.AspNetCore.Mvc; using Swashbuckle.AspNetCore.SwaggerGen; @@ -13,25 +13,25 @@ namespace Lykke.Service.Assets.Controllers.V2 [Route("api/v2/asset-pairs")] public class AssetPairsController : Controller { - private readonly IAssetPairManager _assetPairManager; + private readonly ICachedAssetPairService _assetPairService; public AssetPairsController( - IAssetPairManager assetPairManager) + ICachedAssetPairService assetPairService) { - _assetPairManager = assetPairManager; + _assetPairService = assetPairService; } [HttpPost] [SwaggerOperation("AssetPairAdd")] - [ProducesResponseType(typeof(AssetPair), (int) HttpStatusCode.Created)] + [ProducesResponseType(typeof(AssetPair), (int)HttpStatusCode.Created)] public async Task Add([FromBody] AssetPair assetPair) { - assetPair = Mapper.Map(await _assetPairManager.AddAsync(assetPair)); + assetPair = Mapper.Map(await _assetPairService.AddAsync(assetPair)); return Created ( - uri: $"api/v2/asset-pairs/{assetPair.Id}", + uri: $"api/v2/asset-pairs/{assetPair.Id}", value: assetPair ); } @@ -42,19 +42,19 @@ public async Task Add([FromBody] AssetPair assetPair) [ProducesResponseType((int)HttpStatusCode.NotFound)] public async Task Exists(string id) { - var assetPairExists = await _assetPairManager.GetAsync(id); - + var assetPairExists = await _assetPairService.GetAsync(id); + return Ok(assetPairExists != null); } [HttpGet("{id}")] [SwaggerOperation("AssetPairGet")] - [ProducesResponseType(typeof(AssetPair), (int) HttpStatusCode.OK)] - [ProducesResponseType((int) HttpStatusCode.NotFound)] + [ProducesResponseType(typeof(AssetPair), (int)HttpStatusCode.OK)] + [ProducesResponseType((int)HttpStatusCode.NotFound)] public async Task Get(string id) { - var assetPair = await _assetPairManager.GetAsync(id); - + var assetPair = await _assetPairService.GetAsync(id); + if (assetPair != null) { return Ok(Mapper.Map(assetPair)); @@ -67,10 +67,10 @@ public async Task Get(string id) [HttpGet] [SwaggerOperation("AssetPairGetAll")] - [ProducesResponseType(typeof(IEnumerable), (int) HttpStatusCode.OK)] + [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)] public async Task GetAll() { - var assetPairs = (await _assetPairManager.GetAllAsync()) + var assetPairs = (await _assetPairService.GetAllAsync()) .Select(Mapper.Map); return Ok(assetPairs); @@ -78,10 +78,10 @@ public async Task GetAll() [HttpGet("__default")] [SwaggerOperation("AssetPairGetDefault")] - [ProducesResponseType(typeof(AssetPair), (int) HttpStatusCode.OK)] + [ProducesResponseType(typeof(AssetPair), (int)HttpStatusCode.OK)] public IActionResult GetDefault() { - var assetPair = _assetPairManager.CreateDefault(); + var assetPair = _assetPairService.CreateDefault(); return Ok(Mapper.Map(assetPair)); } @@ -89,10 +89,10 @@ public IActionResult GetDefault() [HttpDelete("{id}")] [SwaggerOperation("AssetPairRemove")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Remove(string id) { - await _assetPairManager.RemoveAsync(id); + await _assetPairService.RemoveAsync(id); return NoContent(); } @@ -102,7 +102,7 @@ public async Task Remove(string id) [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Update([FromBody] AssetPair assetPair) { - await _assetPairManager.UpdateAsync(assetPair); + await _assetPairService.UpdateAsync(assetPair); return NoContent(); } diff --git a/src/Lykke.Service.Assets/Controllers/v2/AssetsController.cs b/src/Lykke.Service.Assets/Controllers/v2/AssetsController.cs index 557299a2..3d590a7e 100644 --- a/src/Lykke.Service.Assets/Controllers/v2/AssetsController.cs +++ b/src/Lykke.Service.Assets/Controllers/v2/AssetsController.cs @@ -3,7 +3,7 @@ using System.Net; using System.Threading.Tasks; using AutoMapper; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Requests.V2; using Lykke.Service.Assets.Responses.V2; using Microsoft.AspNetCore.Mvc; @@ -14,48 +14,48 @@ namespace Lykke.Service.Assets.Controllers.V2 [Route("api/v2/assets")] public class AssetsController : Controller { - private readonly IAssetManager _assetManager; - private readonly IAssetCategoryManager _assetCategoryManager; + private readonly ICachedAssetService _assetService; + private readonly ICachedAssetCategoryService _assetCategoryService; public AssetsController( - IAssetManager assetManager, - IAssetCategoryManager assetCategoryManager) + ICachedAssetService assetService, + ICachedAssetCategoryService assetCategoryService) { - _assetManager = assetManager; - _assetCategoryManager = assetCategoryManager; + _assetService = assetService; + _assetCategoryService = assetCategoryService; } [HttpPost] [SwaggerOperation("AssetAdd")] - [ProducesResponseType(typeof(Asset), (int) HttpStatusCode.Created)] + [ProducesResponseType(typeof(Asset), (int)HttpStatusCode.Created)] public async Task Add([FromBody] Asset asset) { - asset = Mapper.Map(await _assetManager.AddAsync(asset)); - + asset = Mapper.Map(await _assetService.AddAsync(asset)); + return Created ( - uri: $"api/v2/assets/{asset.Id}", + uri: $"api/v2/assets/{asset.Id}", value: asset ); } [HttpPost("{id}/disable")] [SwaggerOperation("AssetDisable")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Disable(string id) { - await _assetManager.DisableAsync(id); - + await _assetService.DisableAsync(id); + return NoContent(); } [HttpPost("{id}/enable")] [SwaggerOperation("AssetEnable")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Enable(string id) { - await _assetManager.EnableAsync(id); - + await _assetService.EnableAsync(id); + return NoContent(); } @@ -64,18 +64,18 @@ public async Task Enable(string id) [ProducesResponseType(typeof(bool), (int)HttpStatusCode.OK)] public async Task Exists(string id) { - var asset = await _assetManager.GetAsync(id); + var asset = await _assetService.GetAsync(id); return Ok(asset != null); } [HttpGet("{id}")] [SwaggerOperation("AssetGet")] - [ProducesResponseType(typeof(Asset), (int) HttpStatusCode.OK)] - [ProducesResponseType((int) HttpStatusCode.NotFound)] + [ProducesResponseType(typeof(Asset), (int)HttpStatusCode.OK)] + [ProducesResponseType((int)HttpStatusCode.NotFound)] public async Task Get(string id) { - var asset = await _assetManager.GetAsync(id); + var asset = await _assetService.GetAsync(id); if (asset != null) { @@ -89,10 +89,10 @@ public async Task Get(string id) [HttpGet] [SwaggerOperation("AssetGetAll")] - [ProducesResponseType(typeof(IEnumerable), (int) HttpStatusCode.OK)] + [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)] public async Task GetAll([FromQuery] bool includeNonTradable = false) { - var assets = (await _assetManager.GetAllAsync(includeNonTradable)) + var assets = (await _assetService.GetAllAsync(includeNonTradable)) .Select(Mapper.Map); return Ok(assets); @@ -103,9 +103,9 @@ public async Task GetAll([FromQuery] bool includeNonTradable = fa [ProducesResponseType(typeof(ListOf), (int)HttpStatusCode.OK)] public async Task GetBySpecification([FromBody] AssetSpecification specification) { - var ids = specification?.Ids?.ToArray() ?? new string[0]; - var isTradable = specification?.IsTradable; - var allTokens = await _assetManager.GetAsync(ids.ToArray(), isTradable); + var ids = specification?.Ids?.ToArray() ?? new string[0]; + var isTradable = specification?.IsTradable; + var allTokens = await _assetService.GetAsync(ids.ToArray(), isTradable); var responseList = allTokens?.Select(Mapper.Map); return Ok(new ListOf @@ -120,14 +120,14 @@ public async Task GetBySpecification([FromBody] AssetSpecificatio [ProducesResponseType((int)HttpStatusCode.NotFound)] public async Task GetCategory(string id) { - var asset = await _assetManager.GetAsync(id); + var asset = await _assetService.GetAsync(id); if (asset == null) { return NotFound("Asset not found"); } - var assetCategory = await _assetCategoryManager.GetAsync(asset.CategoryId ?? ""); + var assetCategory = await _assetCategoryService.GetAsync(asset.CategoryId ?? ""); if (assetCategory == null) { @@ -142,7 +142,7 @@ public async Task GetCategory(string id) [ProducesResponseType(typeof(Asset), (int)HttpStatusCode.OK)] public IActionResult GetDefault() { - var asset = _assetManager.CreateDefault(); + var asset = _assetService.CreateDefault(); return Ok(Mapper.Map(asset)); } @@ -150,21 +150,21 @@ public IActionResult GetDefault() [HttpDelete("{id}")] [SwaggerOperation("AssetRemove")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Remove(string id) { - await _assetManager.RemoveAsync(id); - + await _assetService.RemoveAsync(id); + return NoContent(); } [HttpPut] [SwaggerOperation("AssetUpdate")] - [ProducesResponseType((int) HttpStatusCode.NoContent)] + [ProducesResponseType((int)HttpStatusCode.NoContent)] public async Task Update([FromBody] Asset asset) { - await _assetManager.UpdateAsync(asset); - + await _assetService.UpdateAsync(asset); + return NoContent(); } } diff --git a/src/Lykke.Service.Assets/Controllers/v2/Erc20TokensController.cs b/src/Lykke.Service.Assets/Controllers/v2/Erc20TokensController.cs index a76157ca..d6d246d9 100644 --- a/src/Lykke.Service.Assets/Controllers/v2/Erc20TokensController.cs +++ b/src/Lykke.Service.Assets/Controllers/v2/Erc20TokensController.cs @@ -2,7 +2,7 @@ using System.Net; using System.Threading.Tasks; using AutoMapper; -using Lykke.Service.Assets.Managers; +using Lykke.Service.Assets.Cache; using Lykke.Service.Assets.Requests.V2; using Lykke.Service.Assets.Responses.V2; using Microsoft.AspNetCore.Mvc; @@ -17,15 +17,15 @@ namespace Lykke.Service.Assets.Controllers.V2 [Route("api/v2/erc20-tokens")] public class Erc20TokensController : Controller { - private readonly IErc20TokenAssetManager _erc20TokenAssetManager; - private readonly IErc20TokenManager _erc20TokenService; + private readonly ICachedErc20TokenAssetService _erc20TokenAssetService; + private readonly ICachedErc20TokenService _erc20TokenService; public Erc20TokensController( - IErc20TokenAssetManager erc20TokenAssetManager, - IErc20TokenManager erc20TokenService) + ICachedErc20TokenAssetService erc20TokenAssetService, + ICachedErc20TokenService erc20TokenService) { - _erc20TokenAssetManager = erc20TokenAssetManager; + _erc20TokenAssetService = erc20TokenAssetService; _erc20TokenService = erc20TokenService; } @@ -44,7 +44,7 @@ public async Task Add([FromBody]Erc20Token token) [ProducesResponseType(typeof(Asset), (int) HttpStatusCode.Created)] public async Task CreateAsset(string address) { - var asset = Mapper.Map(await _erc20TokenAssetManager.CreateAssetForErc20TokenAsync(address)); + var asset = Mapper.Map(await _erc20TokenAssetService.CreateAssetForErc20TokenAsync(address)); return Created ( diff --git a/src/Lykke.Service.Assets/Lykke.Service.Assets.csproj b/src/Lykke.Service.Assets/Lykke.Service.Assets.csproj index 376d2991..d6c48471 100644 --- a/src/Lykke.Service.Assets/Lykke.Service.Assets.csproj +++ b/src/Lykke.Service.Assets/Lykke.Service.Assets.csproj @@ -13,26 +13,26 @@ 1701;1702;1705;1591 - + - - - - + + + + - - + + - - - - - - - - + + + + + + + + diff --git a/src/Lykke.Service.Assets/Managers/Erc20TokenAssetManager.cs b/src/Lykke.Service.Assets/Managers/Erc20TokenAssetManager.cs deleted file mode 100644 index 8b022d4b..00000000 --- a/src/Lykke.Service.Assets/Managers/Erc20TokenAssetManager.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Threading.Tasks; -using Lykke.Service.Assets.Cache; -using Lykke.Service.Assets.Core.Domain; -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public class Erc20TokenAssetManager : IErc20TokenAssetManager - { - private readonly ICache _assetCache; - private readonly IErc20TokenAssetService _tokenAssetService; - - - public Erc20TokenAssetManager( - IErc20TokenAssetService tokenAssetService, - ICache assetCache) - { - _assetCache = assetCache; - _tokenAssetService = tokenAssetService; - } - - public async Task CreateAssetForErc20TokenAsync(string tokenAddress) - { - await _assetCache.InvalidateAsync(); - - return await _tokenAssetService.CreateAssetForErc20TokenAsync(tokenAddress); - } - } -} diff --git a/src/Lykke.Service.Assets/Managers/IAssetCategoryManager.cs b/src/Lykke.Service.Assets/Managers/IAssetCategoryManager.cs deleted file mode 100644 index 6fdc64af..00000000 --- a/src/Lykke.Service.Assets/Managers/IAssetCategoryManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public interface IAssetCategoryManager : IAssetCategoryService, ICanInvalidateCache - { - - } -} diff --git a/src/Lykke.Service.Assets/Managers/IAssetManager.cs b/src/Lykke.Service.Assets/Managers/IAssetManager.cs deleted file mode 100644 index ef0b41ec..00000000 --- a/src/Lykke.Service.Assets/Managers/IAssetManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public interface IAssetManager : IAssetService, ICanInvalidateCache - { - - } -} diff --git a/src/Lykke.Service.Assets/Managers/IAssetPairManager.cs b/src/Lykke.Service.Assets/Managers/IAssetPairManager.cs deleted file mode 100644 index fe9f12b0..00000000 --- a/src/Lykke.Service.Assets/Managers/IAssetPairManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public interface IAssetPairManager : IAssetPairService, ICanInvalidateCache - { - - } -} diff --git a/src/Lykke.Service.Assets/Managers/ICanInvalidateCache.cs b/src/Lykke.Service.Assets/Managers/ICanInvalidateCache.cs deleted file mode 100644 index 76d21be6..00000000 --- a/src/Lykke.Service.Assets/Managers/ICanInvalidateCache.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Threading.Tasks; - -namespace Lykke.Service.Assets.Managers -{ - public interface ICanInvalidateCache - { - Task InvalidateCache(); - } -} diff --git a/src/Lykke.Service.Assets/Managers/IErc20TokenAssetManager.cs b/src/Lykke.Service.Assets/Managers/IErc20TokenAssetManager.cs deleted file mode 100644 index bcde2425..00000000 --- a/src/Lykke.Service.Assets/Managers/IErc20TokenAssetManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public interface IErc20TokenAssetManager : IErc20TokenAssetService - { - - } -} diff --git a/src/Lykke.Service.Assets/Managers/IErc20TokenManager.cs b/src/Lykke.Service.Assets/Managers/IErc20TokenManager.cs deleted file mode 100644 index ca21db9b..00000000 --- a/src/Lykke.Service.Assets/Managers/IErc20TokenManager.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Lykke.Service.Assets.Core.Services; - -namespace Lykke.Service.Assets.Managers -{ - public interface IErc20TokenManager : IErc20TokenService, ICanInvalidateCache - { - - } -} diff --git a/src/Lykke.Service.Assets/Modules/ApiModule.cs b/src/Lykke.Service.Assets/Modules/ApiModule.cs index 54a5938b..fe0b8188 100644 --- a/src/Lykke.Service.Assets/Modules/ApiModule.cs +++ b/src/Lykke.Service.Assets/Modules/ApiModule.cs @@ -4,8 +4,9 @@ using Lykke.Service.Assets.Core; using Lykke.Service.Assets.Core.Domain; using Lykke.Service.Assets.Core.Services; -using Lykke.Service.Assets.Managers; using Lykke.Service.Assets.RabbitSubscribers; +using Lykke.Service.Assets.Repositories.Entities; +using Lykke.Service.Assets.Repositories.DTOs; using Lykke.SettingsReader; using StackExchange.Redis; @@ -31,10 +32,10 @@ protected override void Load(ContainerBuilder builder) builder.RegisterInstance(_settings).SingleInstance(); builder.RegisterInstance(_settings.CurrentValue.AssetsService).SingleInstance(); - RegisterCache(builder, "Assets"); - RegisterCache(builder, "AssetCategories"); - RegisterCache(builder, "AssetPairs"); - RegisterCache(builder, "Erc20Tokens"); + RegisterCache(builder, "Assets"); + RegisterCache(builder, "AssetCategories"); + RegisterCache(builder, "AssetPairs"); + RegisterCache(builder, "Erc20Tokens"); RegisterRedis(builder); @@ -43,28 +44,28 @@ protected override void Load(ContainerBuilder builder) .SingleInstance(); builder - .RegisterType() - .As() + .RegisterType() + .As() .SingleInstance(); builder - .RegisterType() - .As() + .RegisterType() + .As() .SingleInstance(); builder - .RegisterType() - .As() + .RegisterType() + .As() .SingleInstance(); builder - .RegisterType() - .As() + .RegisterType() + .As() .SingleInstance(); builder - .RegisterType() - .As() + .RegisterType() + .As() .SingleInstance(); RegisterRabbitMqSubscribers(builder); @@ -105,10 +106,9 @@ private void RegisterRabbitMqSubscribers(ContainerBuilder builder) .WithParameter(TypedParameter.From(_settings.CurrentValue.AssetsService.Rabbit.ConnectionString)); } - private void RegisterCache(ContainerBuilder builder, string partitionKey) + private void RegisterCache(ContainerBuilder builder, string partitionKey) where T : class, I { - builder.RegisterType>() - .As>() + builder.RegisterType>() .SingleInstance() .WithParameter(TypedParameter.From(_settings.CurrentValue.AssetsService.Dictionaries.CacheExpirationPeriod)) .WithParameter(TypedParameter.From(partitionKey)); diff --git a/src/Lykke.Service.Assets/RabbitSubscribers/ErcContractSubscriber.cs b/src/Lykke.Service.Assets/RabbitSubscribers/ErcContractSubscriber.cs index af5f5de9..65b20ad9 100644 --- a/src/Lykke.Service.Assets/RabbitSubscribers/ErcContractSubscriber.cs +++ b/src/Lykke.Service.Assets/RabbitSubscribers/ErcContractSubscriber.cs @@ -27,9 +27,6 @@ public ErcContractSubscriber(ILog log, IErcContractProcessor ercContractProcesso public void Start() { - // NOTE: Read https://github.com/LykkeCity/Lykke.RabbitMqDotNetBroker/blob/master/README.md to learn - // about RabbitMq subscriber configuration - var settings = RabbitMqSubscriptionSettings .CreateForSubscriber(_connectionString, "ethereum.indexer.erccontracts", "service.assets") .MakeDurable(); @@ -50,7 +47,7 @@ private async Task ProcessMessageAsync(Erc20ContractCreatedMessage arg) { // TODO: Orchestrate execution flow here and delegate actual business logic implementation to services layer // Do not implement actual business logic here - Erc20Token message = new Erc20Token() + var token = new Erc20Token { Address = arg.Address, AssetId = null, @@ -64,7 +61,7 @@ private async Task ProcessMessageAsync(Erc20ContractCreatedMessage arg) TransactionHash = arg.TransactionHash }; - await _ercContractProcessor.ProcessErc20ContractAsync(message); + await _ercContractProcessor.ProcessErc20ContractAsync(token); } public void Dispose() diff --git a/tests/Lykke.Service.Assets.Repositories.Tests/Lykke.Service.Assets.Repositories.Tests.csproj b/tests/Lykke.Service.Assets.Repositories.Tests/Lykke.Service.Assets.Repositories.Tests.csproj index b11af258..6f52f0bf 100644 --- a/tests/Lykke.Service.Assets.Repositories.Tests/Lykke.Service.Assets.Repositories.Tests.csproj +++ b/tests/Lykke.Service.Assets.Repositories.Tests/Lykke.Service.Assets.Repositories.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/Lykke.Service.Assets.Services.Tests/Lykke.Service.Assets.Services.Tests.csproj b/tests/Lykke.Service.Assets.Services.Tests/Lykke.Service.Assets.Services.Tests.csproj index 7bb877c5..75a2177d 100644 --- a/tests/Lykke.Service.Assets.Services.Tests/Lykke.Service.Assets.Services.Tests.csproj +++ b/tests/Lykke.Service.Assets.Services.Tests/Lykke.Service.Assets.Services.Tests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/Lykke.Service.Assets.Tests/Lykke.Service.Assets.Tests.csproj b/tests/Lykke.Service.Assets.Tests/Lykke.Service.Assets.Tests.csproj index a521f9a4..1438c861 100644 --- a/tests/Lykke.Service.Assets.Tests/Lykke.Service.Assets.Tests.csproj +++ b/tests/Lykke.Service.Assets.Tests/Lykke.Service.Assets.Tests.csproj @@ -5,8 +5,8 @@ - - + +