Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public bool Create(MembershipEntity entity, DbConnection connection, DbTransaction transaction, out MembershipCreateStatus status)
        {
            status = MembershipCreateStatus.ProviderError;

            entity.Password = KandaHashAlgorithm.ComputeHash(typeof(SHA512Managed).FullName, ((SecureString)entity.Password).GetString(), Encoding.Unicode);

            var error = MembershipsGateway.Insert(entity, connection, transaction);

            switch (error)
            {
            case KandaTableDataGateway.NO_ERRORS:
                status = MembershipCreateStatus.Success;
                return(true);

            case KandaTableDataGateway.DUPLICATE_USER_NAME:
                status = MembershipCreateStatus.DuplicateUserName;
                break;

            //case KandaTableDataGateway.DUPLICATE_PROVIDER_USER_KEY:
            //    status = MembershipCreateStatus.DuplicateProviderUserKey;
            //    break;

            default:
                break;
            }

            return(false);

            //return (error == KandaTableDataGateway.NO_ERRORS);
        }
Esempio n. 2
0
        public async Task SelectAsyncFact()
        {
            var connection  = this.Factory.CreateConnection();
            var transaction = default(DbTransaction);
            var token       = CancellationToken.None;

            try
            {
                connection.Open();
                transaction = connection.BeginTransaction(IsolationLevel.Serializable);

                // 登録
                var entity = new MembershipEntity()
                {
                    ID        = 0,
                    Name      = string.Format("MembershipsGatewayFacts.FindAsyncFact(new MembershipEntity {{ Name={0} }}) ", new Random().Next()),
                    Password  = @"password",
                    Enabled   = true,
                    Email     = @"*****@*****.**",
                    CreatedOn = DateTime.Now,
                    // UpdatedOn = CreatedOn,
                };
                var inserted = await MembershipsGateway.InsertAsync(entity, connection, transaction, token);

                Assert.True(0 < inserted);

                // 取得
                var criteria = new MembershipsCriteria()
                {
                    ID = inserted,
                };
                var selected = await MembershipsGateway.SelectAsync(criteria, connection, transaction, token);

                Assert.True(selected.Read());
                selected.Close();

                // 削除
                var deleted = await MembershipsGateway.DeleteAsync(inserted, connection, transaction, token);

                Assert.True(deleted == 1);

                transaction.Commit();
            }
            catch
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                }
            }
            finally
            {
                if (connection != null)
                {
                    connection.Close();
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public bool Create(MembershipEntity entity, DbConnection connection, DbTransaction transaction)
        {
            if (entity.ID <= 0)
            {
                entity.ID = MembershipsGateway.SelectNextID(connection, transaction);
            }

            var created = MembershipsGateway.Insert(entity, connection, transaction);

            return(created == 1);
        }
Esempio n. 4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IEnumerable <MembershipEntity> Get(MembershipsCriteria criteria, DbConnection connection, DbTransaction transaction)
        {
            var reader = default(DbDataReader);

            try
            {
                reader = MembershipsGateway.Select(criteria, connection, transaction);

                var memberships = KandaDbDataMapper.MapToEnumerable <MembershipEntity>(reader);

                return(memberships);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public MembershipUser Find(string name, string password, DbConnection connection, DbTransaction transaction)
        {
            var reader = default(KandaDbDataReader);

            try
            {
                reader = MembershipsGateway.Select(name, password, connection, transaction);

                var membership = (reader.Read() ? KandaDbDataMapper.MapToObject <MembershipEntity>(reader) : default(MembershipEntity));

                return(new KandaMembershipUser(membership));
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        public async Task <MembershipEntity> FindAsync(MembershipsCriteria criteria, DbConnection connection, DbTransaction transaction, CancellationToken token)
        {
            var reader = default(DbDataReader);

            try
            {
                reader = await MembershipsGateway.SelectAsync(criteria, connection, transaction, token);

                var entity = await reader.ReadAsync()
                    ? KandaDataMapper.MapToObject <MembershipEntity>(reader)
                    : MembershipEntity.Empty;

                return(entity);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public MembershipEntity Find(long id, DbConnection connection, DbTransaction transaction)
        {
            var reader = default(KandaDbDataReader);

            try
            {
                reader = MembershipsGateway.Select(id, connection, transaction);
                if (!reader.Read())
                {
                    return(null);
                }

                return(KandaDbDataMapper.MapToObject <MembershipEntity>(reader));
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
Esempio n. 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public MembershipEntity Find(MembershipsCriteria criteria, DbConnection connection, DbTransaction transaction)
        {
            var password = criteria.Password;

            if (password == null)
            {
                this.DoNothing();
            }
            else
            {
                if (criteria.Password is SecureString)
                {
                    password = ((SecureString)criteria.Password).GetString();
                }

                var hash = KandaHashAlgorithm.ComputeHash(typeof(SHA512Managed).FullName, (string)password, Encoding.Unicode);
                password = hash;
            }
            criteria.Password = password;

            var reader = default(KandaDbDataReader);

            try
            {
                reader = MembershipsGateway.Select(criteria, connection, transaction);

                var found = (reader.Read() ? KandaDbDataMapper.MapToObject <MembershipEntity>(reader) : MembershipEntity.Empty);

                return(found);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
Esempio n. 9
0
        public async Task InserAsyncFact()
        {
            var entity = new MembershipEntity()
            {
                ID        = 0,
                Name      = string.Format(@"MembershipsGatewayFacts.InserAsyncFact.{0}", new Random().Next()),
                Password  = @"",
                Enabled   = true,
                CreatedOn = DateTime.Now,
            };

            var connection  = this.Factory.CreateConnection();
            var transaction = default(DbTransaction);
            var token       = CancellationToken.None;

            try
            {
                connection.Open();
                transaction = connection.BeginTransaction(IsolationLevel.Serializable);

                var inserted = await MembershipsGateway.InsertAsync(entity, connection, transaction, token);

                Assert.True(0L < inserted);
            }
            finally
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                }
                if (connection != null)
                {
                    connection.Close();
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="connction"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        internal bool Truncate(DbConnection connction, DbTransaction transaction)
        {
            var error = MembershipsGateway.Truncate(connction, transaction);

            return(error == 0);
        }
Esempio n. 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        internal bool Delete(DbConnection connection, DbTransaction transaction)
        {
            var deleted = MembershipsGateway.Delete(connection, transaction);

            return(0 <= deleted);
        }
Esempio n. 12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        internal bool Delete(long id, DbConnection connection, DbTransaction transaction)
        {
            var deleted = MembershipsGateway.Delete(id, connection, transaction);

            return(deleted == KandaTableDataGateway.NO_ERRORS);
        }
Esempio n. 13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public long IdentCurrent(DbConnection connection, DbTransaction transaction)
        {
            var current = MembershipsGateway.IdentCurrent(connection, transaction);

            return(decimal.ToInt64(current));
        }
Esempio n. 14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public bool Update(MembershipEntity entity, DbConnection connection, DbTransaction transaction)
        {
            var updated = MembershipsGateway.Update(entity, connection, transaction);

            return(updated == 1);
        }
        /// <summary>
        /// /
        /// </summary>
        /// <param name="id"></param>
        /// <param name="connection"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        internal bool Delete(long id, DbConnection connection, DbTransaction transaction)
        {
            var deleted = MembershipsGateway.Delete(id, connection, transaction);

            return(deleted == 1);
        }