public async Task <IActionResult> GetGitHubProjects()
        {
            if (_cache.TryGetValue(RepoKey, out IEnumerable <GitHubDto> projects))
            {
                return(Ok(projects));
            }

            var repos = (await _gitHubRepository.GetByCreatedAtDescendingAsync())
                        .Select(x => new GitHubDto
            {
                Id          = x.Id,
                CreatedOn   = x.CreatedOn,
                CreatedAt   = x.CreatedAt.ToLongDateString(),
                Description = x.Description,
                Forks       = x.Forks,
                HtmlUrl     = x.HtmlUrl,
                Language    = x.Language,
                Name        = x.Name
            });

            _cache.Set(RepoKey, repos, TimeSpan.FromDays(5));

            return(Ok(repos));
        }