private async Task <DeviceResponse> HandleAccountStatus(Device device, string type)
        {
            var now     = DateTime.UtcNow.ToTotalSeconds();
            var account = await _accountRepository.GetByIdAsync(device.AccountUsername).ConfigureAwait(false);

            if (account == null)
            {
                return(new DeviceResponse
                {
                    Status = "error",
                    Error = $"Failed to lookup account by username {device.AccountUsername}",
                });
            }

            switch (type.ToLower())
            {
            case "account_banned":
                if (account.FirstWarningTimestamp == null || string.IsNullOrEmpty(account.Failed))
                {
                    account.FailedTimestamp = now;
                    account.Failed          = "banned";
                }
                break;

            case "account_warning":
                if (account.FirstWarningTimestamp == null)
                {
                    account.FirstWarningTimestamp = now;
                }
                break;

            case "account_invalid_credentials":
                if (account.FirstWarningTimestamp == null || string.IsNullOrEmpty(account.Failed))
                {
                    account.FailedTimestamp = now;
                    account.Failed          = "invalid_credentials";
                }
                break;
            }
            //await _accountRepository.UpdateAsync(account);
            await _accountRepository.AddOrUpdateAsync(account).ConfigureAwait(false);

            return(new DeviceResponse
            {
                Status = "ok",
            });
        }