public async Task <UserStatusEnum> WebRestoreAuth(WebUserItem order)
        {
            var sUser = await SQLHelper.GetAuthUserByCharacterId(order.Id);

            if (sUser == null)
            {
                return(UserStatusEnum.Initial);
            }

            //restore alt
            if (sUser.MainCharacterId > 0)
            {
                sUser.AuthState = (int)UserStatusEnum.Authed;
                await SQLHelper.SaveAuthUser(sUser);

                return(UserStatusEnum.Authed);
            }

            sUser.AuthState = (int)UserStatusEnum.Awaiting;
            sUser.RegCode   = Guid.NewGuid().ToString("N");
            await SQLHelper.SaveAuthUser(sUser);

            if (sUser.DiscordId > 0)
            {
                await WebAuthModule.AuthUser(null, sUser.RegCode, sUser.DiscordId);

                return(UserStatusEnum.Authed);
            }
            return(UserStatusEnum.Awaiting);
        }
        public async Task <bool> WebDeleteUser(WebUserItem order)
        {
            var sUser = await SQLHelper.GetAuthUserByCharacterId(order.Id);

            if (sUser == null)
            {
                await LogHelper.LogError($"User {order.Id} not found for delete op");

                return(false);
            }

            if (Settings.HRMModule.UseDumpForMembers && !sUser.IsDumped)
            {
                sUser.SetStateDumpster();
                await LogHelper.LogInfo(
                    $"HR moving character {sUser.Data.CharacterName} to dumpster...");

                await SQLHelper.SaveAuthUser(sUser);
            }
            else
            {
                await LogHelper.LogInfo(
                    $"HR deleting character {sUser.Data.CharacterName} auth...");

                await SQLHelper.DeleteAuthDataByCharId(order.Id, true);
            }

            if (sUser.DiscordId > 0)
            {
                await WebAuthModule.UpdateUserRoles(sUser.DiscordId,
                                                    Settings.WebAuthModule.ExemptDiscordRoles,
                                                    Settings.WebAuthModule.AuthCheckIgnoreRoles, true);
            }
            return(true);
        }
        public async Task <bool> WebMoveToSpies(WebUserItem order)
        {
            var charId = order.Id;

            if (charId == 0)
            {
                return(false);
            }
            var user = await SQLHelper.GetAuthUserByCharacterId(charId);

            if (user == null)
            {
                return(false);
            }
            user.SetStateSpying();
            await SQLHelper.SaveAuthUser(user);

            return(true);
        }