WebApp.Services.AddressService.CachedDistrictList C# (CSharp) Method

CachedDistrictList() public method

public CachedDistrictList ( int cityId = null ) : List
cityId int
return List
        public List<District> CachedDistrictList(int? cityId=null)
        {
            List<District> list;
            if (!Cache.TryGetValue(CacheKeys.District, out list))
            {
                IQueryable<District> query = DbContext.Districts;
                if (cityId.HasValue)
                {
                    query = query.Where(x => x.CityId == cityId.Value);
                }
                list = query.OrderBy(x => x.Name).ToList();

                Cache.Set(CacheKeys.District, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(5)));
                _logger.LogInformation($"{CacheKeys.District} updated from source.");
            }

            return list;
        }