public async Task <List <BoundStatement> > BuildBoundStatements_ForCreate(
            IdentityServerUserModel user)
        {
            var result = new List <BoundStatement>();
            // @"user_profile_by_id (UserId,Enabled,UserName) " +

            PreparedStatement prepared = await _CreateUserById;
            BoundStatement    bound    = prepared.Bind(
                user.UserId,
                user.Enabled,
                user.UserName
                );

            result.Add(bound);
            return(result);
        }
        public async Task UpdateIdentityServerUserAsync(IdentityServerUser user,
                                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            var model = new IdentityServerUserModel()
            {
                Enabled  = user.Enabled,
                UserId   = user.UserId,
                UserName = user.UserName
            };

            await UpdateIdentityServerUserAsync(model,
                                                cancellationToken);
        }
        public async Task <IdentityServerStoreAppliedInfo> CreateIdentityServerUserAsync(IdentityServerUser user,
                                                                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            var model = new IdentityServerUserModel()
            {
                Enabled  = user.Enabled,
                UserId   = user.UserId,
                UserName = user.UserName
            };

            return(await CreateIdentityServerUserAsync(model,
                                                       cancellationToken));
        }
        public async Task UpdateIdentityServerUserAsync(IdentityServerUserModel user,
                                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            var     session = CassandraSession;
            IMapper mapper  = new Mapper(session);

            cancellationToken.ThrowIfCancellationRequested();

            try
            {
                await mapper.UpdateAsync(user);
            }
            catch (Exception e)
            {
                throw;
            }
        }
        public async Task <IdentityServerStoreAppliedInfo> CreateIdentityServerUserAsync(IdentityServerUserModel user,
                                                                                         CancellationToken cancellationToken = default(CancellationToken))
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            var     session = CassandraSession;
            IMapper mapper  = new Mapper(session);

            cancellationToken.ThrowIfCancellationRequested();

            try
            {
                var record = await mapper.InsertIfNotExistsAsync(user);

                return(new IdentityServerStoreAppliedInfo(record.Applied));
            }
            catch (Exception e)
            {
                throw;
            }

            /*
             *          var batch = new BatchStatement();
             *          var boundStatements = await BuildBoundStatements_ForCreate(user);
             *          batch.AddRange(boundStatements);
             *          await session.ExecuteAsync(batch).ConfigureAwait(false);
             *   return new IdentityServerStoreAppliedInfo(true);
             * */
        }