// Enable this for security
        //[Authorize(Policy = "read.fortunes")]
        /// <summary>
        /// Services Page.
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> Services()
        {
            _logger?.LogDebug("RandomFortune");

            ViewData["FortuneUrl"] = _fortunesConfig.Value.RandomFortuneURL;

            var fortune = await _fortunes.RandomFortuneAsync();

            var _fortuneHistory = RedisCacheStore?.GetString("FortuneHistory");

            if (!string.IsNullOrEmpty(_fortuneHistory))
            {
                fortunes = JsonConvert.DeserializeObject <List <string> >(_fortuneHistory);
            }

            fortunes.Insert(0, fortune.Text);

            if (fortunes.Count > 10)
            {
                fortunes.RemoveAt(10);
            }

            string fortuneoutput = JsonConvert.SerializeObject(fortunes);

            RedisCacheStore?.SetString("FortuneHistory", fortuneoutput);

            HttpContext.Session.SetString("MyFortune", fortune.Text);

            var _appInstCount = RedisCacheStore?.GetString("AppInstance");

            if (!string.IsNullOrEmpty(_appInstCount))
            {
                _logger?.LogInformation($"App Session Data: {_appInstCount}");
                appInstCount = JsonConvert.DeserializeObject <SortedList <int, int> >(_appInstCount);
            }

            var _srvInstCount = RedisCacheStore?.GetString("SrvInstance");

            if (!string.IsNullOrEmpty(_srvInstCount))
            {
                _logger?.LogInformation($"Servlet Session Data: {_srvInstCount}");
                srvInstCount = JsonConvert.DeserializeObject <SortedList <int, int> >(_srvInstCount);
            }

            var _count2 = srvInstCount.GetValueOrDefault(fortune.InstanceIndex, 0);

            srvInstCount[fortune.InstanceIndex] = ++_count2;

            string output2 = JsonConvert.SerializeObject(srvInstCount);

            RedisCacheStore?.SetString("SrvInstance", output2);

            ViewData["MyFortune"]           = fortune.Text;
            ViewData["FortuneIndex"]        = $"{fortune.InstanceIndex}";
            ViewData["FortuneDiscoveryUrl"] = discoveryClient.GetInstances("fortuneService")?[fortune.InstanceIndex]?.Uri?.ToString();
            return(View(new CloudFoundryViewModel(
                            CloudFoundryApplication == null ? new CloudFoundryApplicationOptions() : CloudFoundryApplication,
                            CloudFoundryServices == null ? new CloudFoundryServicesOptions() : CloudFoundryServices,
                            IConfigServerData.Value,
                            discoveryClient,
                            appInstCount,
                            srvInstCount,
                            fortunes,
                            connects)));
        }