private async Task HandleNewGuildAsync(SocketGuild arg)
        {
            if (await _db.CollectionExistsAsync(arg.Id.ToString()))
            {
                _logger.Log("Guild already exists, doing nothing", LogSeverity.SEVERITY_ALERT);
                return;
            }

            HamburgerGuildConfiguration guildConfig = new HamburgerGuildConfiguration
            {
                DiscordGuildId = arg.Id,
                CommandPrefix  = "!"
            };

            _logger.Log($"Creating new collection for server: {arg.Name}", LogSeverity.SEVERITY_ALERT);
#pragma warning disable 4014
            _db.StoreOne(guildConfig, arg.Id.ToString());
#pragma warning restore 4014

            foreach (var user in arg.Users)
            {
                var hamburgerUser = await _userProvider.GetOrCreateUserAsync(user.Id, arg.Id);

                _logger.Log($"Created user {hamburgerUser.DiscordUserId}", LogSeverity.SEVERITY_MESSAGE);
            }
        }
        private HamburgerUser EnsureUserExists(
            HamburgerUser user,
            ulong userId,
            ulong guildId)
        {
            if (user is null)
            {
                user = new HamburgerUser()
                {
                    DiscordUserId = userId,
                    Permissions   = new List <Permission>()
                };
                _db.StoreOne(user, guildId.ToString());
            }

            return(user);
        }