public object Any(RegenrateApiKeys request)
        {
            var apiKeyAuth = this.Request.AssertValidApiKeyRequest();

            if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1)
            {
                throw new ArgumentNullException("Environment");
            }

            var env = request.Environment ?? apiKeyAuth.Environments[0];

            var apiRepo = (IManageApiKeys)TryResolve <IAuthRepository>();

            var userId     = GetSession().UserAuthId;
            var updateKeys = apiRepo.GetUserApiKeys(userId)
                             .Where(x => x.Environment == env)
                             .ToList();

            updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow);

            var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env);

            updateKeys.AddRange(newKeys);

            apiRepo.StoreAll(updateKeys);

            return(new RegenrateApiKeysResponse
            {
                Results = newKeys.Map(k => new UserApiKey
                {
                    Key = k.Id,
                    KeyType = k.KeyType,
                    ExpiryDate = k.ExpiryDate,
                })
            });
        }
        public object Any(RegenrateApiKeys request)
        {
            var apiKeyAuth = this.Request.AssertValidApiKeyRequest();
            if (string.IsNullOrEmpty(request.Environment) && apiKeyAuth.Environments.Length != 1)
                throw new ArgumentNullException("Environment");

            var env = request.Environment ?? apiKeyAuth.Environments[0];

            var authRepo = (IManageApiKeys)TryResolve<IAuthRepository>().AsUserAuthRepository(Request);

            var userId = GetSession().UserAuthId;
            var updateKeys = authRepo.GetUserApiKeys(userId)
                .Where(x => x.Environment == env)
                .ToList();

            updateKeys.Each(x => x.CancelledDate = DateTime.UtcNow);

            var newKeys = apiKeyAuth.GenerateNewApiKeys(userId, env);
            updateKeys.AddRange(newKeys);

            authRepo.StoreAll(updateKeys);
            
            return new RegenrateApiKeysResponse
            {
                Results = newKeys.Map(k => new UserApiKey
                    {
                        Key = k.Id,
                        KeyType = k.KeyType,
                        ExpiryDate = k.ExpiryDate,
                    })
            };
        }