public void CanCheckUserUserCacheExpiry()
        {
            _user.CreatedOn = DateTime.Today.AddDays(-1);
            bool result = _utils.IsUserCacheExpired(_user);

            Assert.AreEqual(true, result);
        }
        public IActionResult Index([Bind("UserId,FirstName,LastName,DoB,Income")] User user)
        {
            if (!ModelState.IsValid)
            {
                return(View("Index", user));
            }

            var cacheKey      = _utils.CreateCacheKey(user);
            var isUserInCache = _memoryCache.TryGetValue(cacheKey, out User cacheUser);

            if (isUserInCache)
            {
                if (_utils.IsUserCacheExpired(cacheUser))
                {
                    this.AddUserToDb(user, cacheKey);
                }
                else
                {
                    _logger.LogInformation(_utils.LogUserInCache(user));
                    TempData["cacheUser"] = cacheKey;
                }
            }
            else
            {
                this.AddUserToDb(user, cacheKey);
            }
            return(RedirectToAction("Index", "Result"));
        }