/// <summary>
        /// Adds the given user to the database
        /// </summary>
        /// <param name="user">ASC user</param>
        public DBUserAuthentification AddUser(ref DBUser user)
        {
            if (!CanChangeName(user?.Name) || user is null)
            {
                return(null);
            }

            user.ID = NextID(USERS);

            while (HasUser(user.ID))
            {
                ++user.ID;
            }

            DBUserAuthentification auth = new DBUserAuthentification
            {
                ID   = user.ID,
                Salt = Authentification.GenerateSaltString(),
            };

            if (!ValidateUser(user))
            {
                return(null);
            }

            var sql = GetScript(nameof(AddUser), user.ID, auth.Salt, user.Name, user.Status, user.IsAdmin ? 1 : 0, user.IsBlocked ? 1 : 0);

            ExecuteVoid(sql);

            user = GetUser(user.ID); // update user

            $"Added user {{{user.UUID}}}".Ok();

            return(DecodeUAuth(auth));
        }