예제 #1
0
        public override void PersistDeletionOf(IAggregateRoot entity)
        {
            var    application = (Application)entity;
            string sql         = "update [application] set isremoved=1 where token=@token and appId = @appId";
            var    conn        = SqlConnectionContextFactory.GetSqlConnection();

            conn.Execute(sql, new { token = application.Token, appId = application.AppId }, DbTranContextFactory.GetSqlTransaction());
        }
예제 #2
0
        public bool AppIdIsInvalid(Guid AppId)
        {
            string sql = "select count(*) from [application] where [appId] = @appId and [status] = @status";

            using (var conn = SqlConnectionContextFactory.GetSqlConnection()) {
                int i = conn.ExecuteScalar <int>(sql, new { appId = AppId, status = 0 });
                return(i > 0);
            }
        }
예제 #3
0
        /// <summary>
        /// 获取application集合
        /// </summary>
        /// <param name="appName"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public PageResult <Application> GetApplications(string appName, int pageIndex, byte pageSize)
        {
            PageResult <Application> result = new PageResult <Application>()
            {
                PageIndex = pageIndex, PageSize = pageSize
            };

            string sql  = @"select top(@pagesize) * from (
                            select top(@count1) *, ROW_NUMBER() over(order by[version] desc) as r from[application] where isRemoved = 0
                        ) t where t.r > @count2 ";
            string sqlc = @"select count(*) from[application] where isRemoved = 0";

            using (var conn = SqlConnectionContextFactory.GetSqlConnection()) {
                result.Data  = conn.Query <Application>(sql, new { pagesize = pageSize, count1 = pageIndex * pageSize, count2 = (pageIndex - 1) * pageSize }).ToList();
                result.Total = conn.ExecuteScalar <int>(sqlc);
                return(result);
            }
        }
예제 #4
0
        public override void PersistUpdateOf(IAggregateRoot entity)
        {
            var    application = (Application)entity;
            string sql         = "update [application] set [appId] = @appId,[appName] = @appName,[lastUpdateTime] = @lastUpdateTime,[isRemoved] = @isRemoved,[status] = @status where token=@token and appId=@appId";
            var    conn        = SqlConnectionContextFactory.GetSqlConnection();

            conn.Execute(sql,
                         new
            {
                appId          = application.AppId,
                appName        = application.AppName,
                lastUpdateTime = application.LastUpdateTime,
                isRemoved      = application.IsRemoved,
                status         = application.Status,
                token          = application.Token
            },
                         DbTranContextFactory.GetSqlTransaction()
                         );
        }
예제 #5
0
        public override void PersistCreationOf(IAggregateRoot entity)
        {
            var    application = (Application)entity;
            string sql         = "insert into [application]([token],[appId],[appName],[createTime],[lastUpdateTime],[isRemoved],[status]) " +
                                 "values(@token, @appId, @appName, @createTime, @lastUpdateTime, @isRemoved, @status)";
            var conn = SqlConnectionContextFactory.GetSqlConnection();

            conn.Execute(sql,
                         new
            {
                token          = application.Token,
                appId          = application.AppId,
                appName        = application.AppName,
                createTime     = application.CreateTime,
                lastUpdateTime = application.LastUpdateTime,
                isRemoved      = application.IsRemoved,
                status         = application.Status
            },
                         transaction: DbTranContextFactory.GetSqlTransaction()
                         );
        }
예제 #6
0
        /// <summary>
        /// 所有命令必须通过Commit才能提交
        /// </summary>
        public void Commit()
        {
            using (var conn = SqlConnectionContextFactory.GetSqlConnection())
                using (var dbtran = DbTranContextFactory.GetSqlTransaction())
                {
                    foreach (IAggregateRoot entity in this.Amended.Keys)
                    {
                        this.Amended[entity].PersistUpdateOf(entity);
                    }

                    foreach (IAggregateRoot entity in this.New.Keys)
                    {
                        this.New[entity].PersistCreationOf(entity);
                    }

                    foreach (IAggregateRoot entity in this.Removed.Keys)
                    {
                        this.Removed[entity].PersistDeletionOf(entity);
                    }

                    dbtran.Commit();
                    CleanContainer();
                }
        }