public async Task <IActionResult> Download(Guid solutionId)
        {
            var solutions = context
                            .Solutions
                            .Where(s => s.Id == solutionId);

            if (!IsAdmin && !User.IsResultsViewer())
            {
                solutions = solutions.Where(s => s.UserId == UserId);
            }

            var solution = await solutions
                           .Select(s => new { s.Language, s.Raw })
                           .SingleOrDefaultAsync()
                           ?? throw StatusCodeException.NotFount;

            var solutionContent = Encoding.UTF8.GetBytes(solution.Raw);

            return(File(solutionContent, "application/octet-stream", $"Program{GetExtensionsForLanguage(solution.Language)}"));
        }