예제 #1
0
        public async Task DelCacheEndpointAsync(string cacheId, string endpoint)
        {
            var model = await ServiceLocator.GetService <IServiceCacheManager>().GetAsync(cacheId);

            var cacheEndpoints = model.CacheEndpoint.Where(p => p.ToString() != endpoint).ToList();

            model.CacheEndpoint = cacheEndpoints;
            var caches      = new ServiceCache[] { model };
            var descriptors = caches.Where(cache => cache != null).Select(cache => new ServiceCacheDescriptor
            {
                AddressDescriptors = cache.CacheEndpoint?.Select(address => new CacheEndpointDescriptor
                {
                    Type  = address.GetType().FullName,
                    Value = _serializer.Serialize(address)
                }) ?? Enumerable.Empty <CacheEndpointDescriptor>(),
                CacheDescriptor = cache.CacheDescriptor
            });
            await ServiceLocator.GetService <IServiceCacheManager>().SetCachesAsync(descriptors);
        }