Example #1
0
        public static void Initialize(params Assembly[] assemblies)
        {
            if (assemblies is null)
            {
                throw new ArgumentNullException(nameof(assemblies));
            }

            if (assemblies.Length == 0)
            {
                assemblies = new Assembly[] { typeof(Converter).Assembly };
            }

            _convertersMetadataMap = new ConcurrentDictionary <string, Type>();
            _convertersCache       = new SimpleMemoryCache <Type, INumberToWordsConverter>();

            var converterTypes = assemblies.SelectMany(x => x.ExportedTypes)
                                 .Where(x => typeof(INumberToWordsConverter).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                                 .Where(x => x.GetCustomAttribute <NumberToWordsConverterAttribute>() != null)
                                 .ToArray();

            foreach (var convType in converterTypes)
            {
                var key = convType.GetCustomAttribute <NumberToWordsConverterAttribute>()?.LanguageCode;
                _convertersMetadataMap[key] = convType;
            }
        }
        public async Task GetOrCreateAsyncFactoryCalledTest()
        {
            SimpleMemoryCache <string, string> cache = new SimpleMemoryCache <string, string>(TimeSpan.FromHours(1));
            int callsCount = 0;
            var value      = await cache.GetOrCreateAsync("key", key => { callsCount++; return(Task.FromResult("value")); });

            Assert.AreEqual(1, callsCount);
            Assert.AreEqual("value", value);
        }
        public async Task GetOrCreateAsyncTimespanTest()
        {
            SimpleMemoryCache <string, string> cache = new SimpleMemoryCache <string, string>(TimeSpan.FromTicks(0));
            int callsCount = 0;
            await cache.GetOrCreateAsync("key", key => { callsCount++; return(Task.FromResult("value")); });

            var value = await cache.GetOrCreateAsync("key", key => { callsCount++; return(Task.FromResult("value 2")); });

            Assert.AreEqual(2, callsCount);
            Assert.AreEqual("value 2", value);
        }
Example #4
0
        static void Main(string[] args)
        {
            ICache cache = new SimpleMemoryCache();

            cache.AddOrUpdate("Test", "Hello Arul!!!", "Console");
            cache.AddOrUpdate("NullSession", "Null Session Orginal data", string.Empty);

            Console.WriteLine("Hello World!");

            Console.WriteLine(cache.Get("Test", "Console"));
            Console.WriteLine(cache["Test"]?.FirstOrDefault());
            Console.WriteLine(cache.Get("NullSession", string.Empty));

            cache.AddOrUpdate("NullSession", "Null Session Data Updated", string.Empty);

            Console.WriteLine(cache.Get("NullSession", string.Empty));

            Console.ReadLine();
        }
Example #5
0
 public BooksController(ILogger logger, SimpleMemoryCache <Book> cache, IRepository <Book> repository)
 {
     _logger     = logger;
     _cache      = cache;
     _repository = repository;
 }