public async Task <Application> GetApplicationAsync(Uri applicationName) { ApplicationList applications = this.cache["ApplicationList"] as ApplicationList; if (applications == null) { applications = await this.GetApplicationsAsync(); this.cache.Set(new CacheItem("ApplicationList", applications), new CacheItemPolicy() { AbsoluteExpiration = DateTimeOffset.UtcNow + this.cacheDuration }); } return(applications.FirstOrDefault(x => x.ApplicationName == applicationName)); }