Beispiel #1
0
        public async Task <ActionResult <IList <Person> > > GetByAge(int age)
        {
            var cacheKey    = $"GetByAge{age}";
            var cachedValue = await CacheStore.GetObjectAsync <List <Person> >(Cache, cacheKey);

            if (cachedValue == null)
            {
                var persons = await PersonSource.GetByAge(age);

                if (persons == null)
                {
                    return(NotFound());
                }

                await CacheStore.SetObjectAsync <List <Person> >(Cache, cacheKey, persons.ToList(), CacheTimeoutInSeconds);

                return(Ok(persons.ToList()));
            }

            return(Ok(cachedValue));
        }
Beispiel #2
0
        public async Task <ActionResult <IList <GenderStatistics> > > GenderStatistics(int age)
        {
            var cacheKey    = $"GenderStatistics";
            var cachedValue = await CacheStore.GetObjectAsync <List <GenderStatistics> >(Cache, cacheKey);

            if (cachedValue == null)
            {
                var stats = await PersonSource.GenderStatistics();

                if (stats == null)
                {
                    return(NotFound());
                }

                await CacheStore.SetObjectAsync <List <GenderStatistics> >(Cache, cacheKey, stats.ToList(), CacheTimeoutInSeconds);

                return(Ok(stats));
            }

            return(Ok(cachedValue));
        }
Beispiel #3
0
        public async Task <ActionResult <Person> > GetById(int id)
        {
            var cacheKey    = $"GetById_{id}";
            var cachedValue = await CacheStore.GetObjectAsync <Person>(Cache, cacheKey);

            if (cachedValue == null)
            {
                var person = await PersonSource.GetById(id);

                if (person == null)
                {
                    return(NotFound());
                }

                await CacheStore.SetObjectAsync <Person>(Cache, cacheKey, person, CacheTimeoutInSeconds);

                return(Ok(person));
            }

            return(Ok(cachedValue));
        }