public async Task <UserLoginResult> CreateAccountAndLoginAsync(IActivityMonitor monitor, IWebFrontAuthAutoCreateAccountContext context)
        {
            var userTable  = _stObjMap.StObjs.Obtain <CustomUserTable>();
            var actorEmail = _stObjMap.StObjs.Obtain <ActorEMailTable>();
            var oidcTable  = _stObjMap.StObjs.Obtain <UserOidcTable>();

            ICustomUserOidcInfos infos = (ICustomUserOidcInfos)context.Payload;
            ISqlCallContext      ctx   = context.HttpContext.RequestServices.GetService <ISqlCallContext>();

            SqlDefaultDatabase db = _stObjMap.StObjs.Obtain <SqlDefaultDatabase>();

            using (var sqlCtx = new SqlStandardCallContext())
            {
                UserQueries userQueries = new UserQueries(sqlCtx, db);
                int         exists      = await userQueries.CheckEmail(infos.Email);

                if (exists == 0)
                {
                    int userId = await userTable.CreateUserAsync(ctx, 1, Guid.NewGuid().ToString(),
                                                                 infos.FirstName, infos.LastName);

                    await actorEmail.AddEMailAsync(ctx, 1, userId, infos.Email, true, false);

                    UCLResult result = await oidcTable.CreateOrUpdateOidcUserAsync(
                        ctx, 1, userId, infos, UCLMode.CreateOrUpdate | UCLMode.WithActualLogin);

                    if (result.OperationResult != UCResult.Created)
                    {
                        return(null);
                    }

                    return(await _dbAuth.CreateUserLoginResultFromDatabase(ctx, _typeSystem, result.LoginResult));
                }
                else
                {
                    UCLResult result = await oidcTable.CreateOrUpdateOidcUserAsync(
                        ctx, 1, exists, infos, UCLMode.CreateOrUpdate | UCLMode.WithActualLogin);

                    return(await _dbAuth.CreateUserLoginResultFromDatabase(ctx, _typeSystem, result.LoginResult));
                }
            }
        }