예제 #1
0
        /// <summary>
        /// 删除部门
        /// </summary>
        /// <param name="departmentId">部门ID</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(string departmentId, ICTransaction tran)
        {
            DepartmentSearcher querySearcher = new DepartmentSearcher();

            querySearcher.DepartmentId.Equal(departmentId);
            this.Delete(querySearcher, tran);
        }
예제 #2
0
        /// <summary>
        /// 根据指定条件删除部门
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            int effectCount = 0;
            DepartmentSearcher querySearcher = null;
            MssqlQueryParser   queryParser   = new MssqlQueryParser();
            StringBuilder      query         = new StringBuilder();

            query.AppendLine(@"DELETE FROM ");
            query.AppendLine(@"   Department ");
            query.AppendLine(@"WHERE ");
            query.AppendLine(@"   DepartmentId IN (");
            query.AppendLine(@"      SELECT ");
            query.AppendLine(@"         D.DepartmentId ");
            query.AppendLine(@"      FROM ");
            query.AppendLine(@"         Department D ");

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    query.AppendLine(@"LEFT JOIN ");
                    query.AppendLine(@"   Company C ON(C.CompanyId = D.CompanyId) ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine(@"WHERE ");
                query.AppendLine(@"   " + queryParser.ConditionString);
            }

            query.AppendLine(@"); ");

            try
            {
                if (tran != null)
                {
                    DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;
                    effectCount = MssqlHelper.ExecuteNonQuery(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
                else
                {
                    effectCount = MssqlHelper.ExecuteNonQuery(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }
            catch (SqlException sex)
            {
                if (sex.ErrorCode == (int)ResultCode.FKError)
                {
                    throw new ResponseException((int)ResultCode.FKError, "DELETE Department");
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 查找指定ID的部门
        /// </summary>
        /// <param name="departmentId">部门ID</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回部门实体对象</returns>
        public Department FindSingle(string departmentId, ICTransaction tran)
        {
            DepartmentSearcher departmentSearcher = new DepartmentSearcher();

            departmentSearcher.DepartmentId.Equal(departmentId);
            IList <Department> departmentList = this.FindList(departmentSearcher);

            return((departmentList == null || departmentList.Count == 0) ? null : departmentList[0]);
        }
예제 #4
0
        /// <summary>
        /// 根据指定条件删除部门
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            DepartmentSearcher   querySearcher = null;
            HibernateTransaction hTran         = null;
            ISession             session       = null;
            HQLQueryParser       queryParser   = new HQLQueryParser();
            StringBuilder        query         = new StringBuilder();

            query.Append("DELETE FROM ");
            query.Append("  Department  ");
            query.Append("WHERE ");
            query.Append("  DepartmentId IN (");
            query.Append("    SELECT ");
            query.Append("      D.DepartmentId ");
            query.Append("    FROM ");
            query.Append("      Department D ");

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    query.Append("LEFT JOIN ");
                    query.Append("  D.CurrCompany C ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.Append("WHERE ");
                query.Append("  " + queryParser.ConditionString);
            }

            query.Append(")");

            if (tran != null)
            {
                hTran   = (HibernateTransaction)tran;
                session = hTran.CurrentSession;
            }
            else
            {
                session = this.CurrentHibernateConfig.GetCurrentSession();
            }

            int effectCount = HibernateHelper.DeleteObjectByHQL(session, query.ToString(), queryParser.ParamCollection);
        }
예제 #5
0
        /// <summary>
        /// 查询部门数量
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public long Count(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            DepartmentSearcher   querySearcher = null;
            HibernateTransaction hTran         = null;
            ISession             session       = null;
            HQLQueryParser       queryParser   = new HQLQueryParser();
            StringBuilder        query         = new StringBuilder();

            query.Append("SELECT ");
            query.Append("  COUNT(*) ");
            query.Append("FROM ");
            query.Append("  Department D ");

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    query.Append("LEFT JOIN ");
                    query.Append("  D.CurrCompany C ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.Append("WHERE ");
                query.Append("  " + queryParser.ConditionString);
            }

            if (tran != null)
            {
                hTran   = (HibernateTransaction)tran;
                session = hTran.CurrentSession;
            }
            else
            {
                session = this.CurrentHibernateConfig.GetCurrentSession();
            }

            long count = HibernateHelper.FindUniqueObjectByHQL <long>(session, query.ToString(), queryParser.ParamCollection);

            return(count);
        }
예제 #6
0
        /// <summary>
        /// 查询部门数量
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public long Count(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            object             count         = 0;
            long               result        = 0;
            DepartmentSearcher querySearcher = null;
            MssqlQueryParser   queryParser   = new MssqlQueryParser();
            StringBuilder      query         = new StringBuilder();

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   COUNT(D.DepartmentId) ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   Department D ");

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    query.AppendLine(@"LEFT JOIN ");
                    query.AppendLine(@"   [Company] C ON(C.CompanyId = D.CompanyId) ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine(@"WHERE ");
                query.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (tran != null)
            {
                DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;
                count = MssqlHelper.ExecuteScalar(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
            }
            else
            {
                count = MssqlHelper.ExecuteScalar(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
            }

            return(long.TryParse(count.ToString(), out result) ? result : 0);
        }
예제 #7
0
        /// <summary>
        /// 根据指定条件查找部门分页集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
        {
            PageDataTable         pDataTable     = null;
            PageList <Department> departmentList = this.FindList(departmentSearcher, pager, tran);

            if (departmentList != null)
            {
                pDataTable.PageIndex  = departmentList.PageIndex;
                pDataTable.TotalCount = departmentList.TotalCount;
                pDataTable.RecordList = new DataTable("Department");
                pDataTable.RecordList.Columns.AddRange(new DataColumn[] {
                    new DataColumn("DepartmentCode", typeof(String)),
                    new DataColumn("DepartmentId", typeof(String)),
                    new DataColumn("CompanyId", typeof(String)),
                    new DataColumn("CreaterId", typeof(String)),
                    new DataColumn("CreateTime", typeof(DateTime)),
                    new DataColumn("Name", typeof(String)),
                    new DataColumn("RVersion", typeof(Int32)),
                    new DataColumn("Status", typeof(Int32)),
                    new DataColumn("UpdateTime", typeof(DateTime)),
                    new DataColumn("UpdatorId", typeof(String))
                });

                foreach (Department department in departmentList.RecordList)
                {
                    pDataTable.RecordList.Rows.Add(
                        department.DepartmentCode,
                        department.DepartmentId,
                        department.CurrCompany.CompanyId,
                        department.CreaterId,
                        department.CreateTime,
                        department.Name,
                        department.RVersion,
                        department.Status,
                        department.UpdateTime,
                        department.UpdatorId
                        );
                }
            }

            return(pDataTable);
        }
예제 #8
0
 /// <summary>
 /// 根据指定条件删除部门
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 public void Delete(DepartmentSearcher departmentSearcher)
 {
     this.Delete(departmentSearcher, null);
 }
예제 #9
0
        /// <summary>
        /// 根据指定条件查找部门集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回一个DataTable对象</returns>
        public DataTable FindDataTable(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            PageDataTable pageDataTable = this.FindDataTable(departmentSearcher, null, tran);

            return(pageDataTable == null ? null : pageDataTable.RecordList);
        }
예제 #10
0
 /// <summary>
 /// 根据指定条件查找部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager)
 {
     return(this.FindDataTable(departmentSearcher, pager, null));
 }
예제 #11
0
        /// <summary>
        /// 查找指定条件的部门分页集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
        public PageList <Department> FindList(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
        {
            PageList <Department> resultList    = new PageList <Department>();
            PageDataTable         pageDataTable = this.FindDataTable(departmentSearcher, pager, tran);
            Department            ele           = null;

            if (pageDataTable != null)
            {
                resultList            = new PageList <Department>();
                resultList.PageIndex  = pageDataTable.PageIndex;
                resultList.TotalCount = pageDataTable.TotalCount;

                if (pageDataTable.RecordList != null && pageDataTable.RecordList.Rows.Count > 0)
                {
                    foreach (DataRow aRow in pageDataTable.RecordList.Rows)
                    {
                        ele = new Department();

                        if (!(aRow["DepartmentId"] is DBNull))
                        {
                            ele.DepartmentId = aRow["DepartmentId"].ToString();
                        }

                        if (!(aRow["CompanyId"] is DBNull))
                        {
                            ele.CompanyId = aRow["CompanyId"].ToString();
                        }

                        if (!(aRow["DepartmentCode"] is DBNull))
                        {
                            ele.DepartmentCode = aRow["DepartmentCode"].ToString();
                        }

                        if (!(aRow["CreaterId"] is DBNull))
                        {
                            ele.CreaterId = aRow["CreaterId"].ToString();
                        }

                        if (!(aRow["CreateTime"] is DBNull))
                        {
                            ele.CreateTime = Convert.ToDateTime(aRow["CreateTime"]);
                        }

                        if (!(aRow["Name"] is DBNull))
                        {
                            ele.Name = aRow["Name"].ToString();
                        }

                        if (!(aRow["RVersion"] is DBNull))
                        {
                            ele.RVersion = Convert.ToInt32(aRow["RVersion"]);
                        }

                        if (!(aRow["Status"] is DBNull))
                        {
                            ele.Status = Convert.ToInt32(aRow["Status"]);
                        }

                        if (!(aRow["UpdateTime"] is DBNull))
                        {
                            ele.UpdateTime = Convert.ToDateTime(aRow["UpdateTime"]);
                        }

                        if (!(aRow["UpdatorId"] is DBNull))
                        {
                            ele.UpdatorId = aRow["UpdatorId"].ToString();
                        }

                        resultList.RecordList.Add(ele);
                    }
                }
            }

            return(resultList);
        }
예제 #12
0
        /// <summary>
        /// 根据指定条件查找部门集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <returns>返回一个DataTable对象</returns>
        public DataTable FindDataTable(DepartmentSearcher departmentSearcher)
        {
            PageDataTable pageDataTable = this.FindDataTable(departmentSearcher, null, null);

            return(pageDataTable == null ? null : pageDataTable.RecordList);
        }
예제 #13
0
 /// <summary>
 /// 查找指定条件的部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <param name="tran">中间事务对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public static PageList <Department> FindDepartmentList(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
 {
     return(DepartmentDal.FindList(departmentSearcher, pager, tran));
 }
예제 #14
0
 /// <summary>
 /// 根据指定条件查找部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public static PageDataTable FindDepartmentDataTable(DepartmentSearcher departmentSearcher, Pager pager)
 {
     return(DepartmentDal.FindDataTable(departmentSearcher, pager));
 }
예제 #15
0
 /// <summary>
 /// 查找指定条件的部门集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <returns>返回部门实体对象集合</returns>
 public static IList <Department> FindDepartmentList(DepartmentSearcher departmentSearcher)
 {
     return(DepartmentDal.FindList(departmentSearcher));
 }
예제 #16
0
 /// <summary>
 /// 根据指定条件删除部门
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 public static void DeleteDepartment(DepartmentSearcher departmentSearcher)
 {
     DepartmentDal.Delete(departmentSearcher);
 }
예제 #17
0
        /// <summary>
        /// 查询部门数量
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <returns>返回查询到的数量</returns>
        public static long CountDepartment(DepartmentSearcher departmentSearcher)
        {
            long count = DepartmentDal.Count(departmentSearcher);

            return(count);
        }
예제 #18
0
        /// <summary>
        /// 根据指定条件查找部门分页集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
        {
            DepartmentSearcher querySearcher  = null;
            MssqlQueryParser   queryParser    = new MssqlQueryParser();
            PageDataTable      pDataTable     = new PageDataTable();
            DataSet            resultSet      = null;
            StringBuilder      query          = new StringBuilder();
            StringBuilder      joinQuery      = new StringBuilder();
            StringBuilder      conditionQuery = new StringBuilder();
            StringBuilder      sortQuery      = new StringBuilder();

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    joinQuery.AppendLine(@"LEFT JOIN ");
                    joinQuery.AppendLine(@"   [Company] C ON(C.CompanyId = D.CompanyId) ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                conditionQuery.AppendLine(@"WHERE ");
                conditionQuery.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                sortQuery.AppendLine(@"ORDER BY ");
                sortQuery.AppendLine(@"   " + queryParser.SortString);
            }

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   D.[DepartmentId] ");
            query.AppendLine(@"  ,D.[DepartmentCode] ");
            query.AppendLine(@"  ,D.[CompanyId] ");
            query.AppendLine(@"  ,D.[Name] ");
            query.AppendLine(@"  ,D.[RVersion] ");
            query.AppendLine(@"  ,D.[Status] ");
            query.AppendLine(@"  ,D.[CreaterId] ");
            query.AppendLine(@"  ,D.[CreateTime] ");
            query.AppendLine(@"  ,D.[UpdatorId] ");
            query.AppendLine(@"  ,D.[UpdateTime] ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   [Department] D ");
            query.AppendLine(joinQuery.ToString());
            query.AppendLine(conditionQuery.ToString());
            query.AppendLine(sortQuery.ToString());
            query.AppendLine(@"; ");

            if (tran != null)
            {
                DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;

                if (pager != null)
                {
                    resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), pager, "Department", queryParser.ParamCollection);
                }
                else
                {
                    resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }
            else
            {
                if (pager != null)
                {
                    resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), pager, "Department", queryParser.ParamCollection);
                }
                else
                {
                    resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }

            if (resultSet != null)
            {
                if (pager != null)
                {
                    pDataTable.PageIndex = pager.CurrentPage;
                }

                pDataTable.TotalCount = this.Count(departmentSearcher, tran);
                pDataTable.RecordList = resultSet.Tables[0];
            }

            return(pDataTable);
        }
예제 #19
0
 /// <summary>
 /// 查询部门数量
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <returns>返回查询到的数量</returns>
 public long Count(DepartmentSearcher departmentSearcher)
 {
     return(this.Count(departmentSearcher, null));
 }
예제 #20
0
        /// <summary>
        /// 查询部门数量
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public static long CountDepartment(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            long count = DepartmentDal.Count(departmentSearcher, tran);

            return(count);
        }
예제 #21
0
        /// <summary>
        /// 查找指定条件的部门集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <returns>返回部门实体对象集合</returns>
        public IList <Department> FindList(DepartmentSearcher departmentSearcher)
        {
            PageList <Department> pageList = this.FindList(departmentSearcher, null, null);

            return(pageList == null ? null : pageList.RecordList);
        }
예제 #22
0
 /// <summary>
 /// 根据指定条件删除部门
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="tran">中间事务对象</param>
 public static void DeleteDepartment(DepartmentSearcher departmentSearcher, ICTransaction tran)
 {
     DepartmentDal.Delete(departmentSearcher, tran);
 }
예제 #23
0
        /// <summary>
        /// 查找指定条件的部门集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回部门实体对象集合</returns>
        public IList <Department> FindList(DepartmentSearcher departmentSearcher, ICTransaction tran)
        {
            PageList <Department> pageList = this.FindList(departmentSearcher, null, tran);

            return(pageList == null ? null : pageList.RecordList);
        }
예제 #24
0
 /// <summary>
 /// 查找指定条件的部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public static PageList <Department> FindDepartmentList(DepartmentSearcher departmentSearcher, Pager pager)
 {
     return(DepartmentDal.FindList(departmentSearcher, pager));
 }
예제 #25
0
 /// <summary>
 /// 查找指定条件的部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public PageList <Department> FindList(DepartmentSearcher departmentSearcher, Pager pager)
 {
     return(this.FindList(departmentSearcher, pager, null));
 }
예제 #26
0
 /// <summary>
 /// 根据指定条件查找部门集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <returns>返回一个DataTable对象</returns>
 public static DataTable FindDepartmentDataTable(DepartmentSearcher departmentSearcher)
 {
     return(DepartmentDal.FindDataTable(departmentSearcher));
 }
예제 #27
0
        /// <summary>
        /// 查找指定条件的部门分页集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
        public PageList <Department> FindList(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
        {
            DepartmentSearcher    querySearcher = null;
            HibernateTransaction  hTran         = null;
            ISession              session       = null;
            PageList <Department> pList         = new PageList <Department>();
            HQLQueryParser        queryParser   = new HQLQueryParser();
            StringBuilder         query         = new StringBuilder();

            query.Append("SELECT ");
            query.Append(" D ");
            query.Append("FROM ");
            query.Append("  Department D ");

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    query.Append("LEFT JOIN ");
                    query.Append("  D.CurrCompany C ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.Append("WHERE ");
                query.Append("  " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                query.Append("ORDER BY ");
                query.Append("  " + queryParser.SortString);
            }

            if (tran != null)
            {
                hTran            = (HibernateTransaction)tran;
                session          = hTran.CurrentSession;
                pList.TotalCount = this.Count(querySearcher, tran);
            }
            else
            {
                session          = this.CurrentHibernateConfig.GetCurrentSession();
                pList.TotalCount = this.Count(querySearcher);
            }

            if (pager != null)
            {
                pList.RecordList = HibernateHelper.FindObjectListByHQL <Department>(session, query.ToString(), queryParser.ParamCollection, pager);
            }
            else
            {
                pList.RecordList = HibernateHelper.FindObjectListByHQL <Department>(session, query.ToString(), queryParser.ParamCollection);
            }

            return(pList);
        }
예제 #28
0
 /// <summary>
 /// 根据指定条件查找部门分页集合
 /// </summary>
 /// <param name="departmentSearcher">部门查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <param name="tran">中间事务对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public static PageDataTable FindDepartmentDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
 {
     return(DepartmentDal.FindDataTable(departmentSearcher, pager, tran));
 }
예제 #29
0
        /// <summary>
        /// 根据指定条件查找部门分页集合
        /// </summary>
        /// <param name="departmentSearcher">部门查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(DepartmentSearcher departmentSearcher, Pager pager, ICTransaction tran)
        {
            DepartmentSearcher querySearcher  = null;
            MysqlQueryParser   queryParser    = new MysqlQueryParser();
            PageDataTable      pDataTable     = new PageDataTable();
            DataSet            resultSet      = null;
            StringBuilder      query          = new StringBuilder();
            StringBuilder      joinQuery      = new StringBuilder();
            StringBuilder      conditionQuery = new StringBuilder();
            StringBuilder      sortQuery      = new StringBuilder();

            if (departmentSearcher != null)
            {
                querySearcher           = (DepartmentSearcher)departmentSearcher.Clone();
                querySearcher.TableName = "D";

                if (querySearcher.CurrCompany != null)
                {
                    querySearcher.CurrCompany.TableName = "C";
                    joinQuery.AppendLine(@"LEFT JOIN ");
                    joinQuery.AppendLine(@"   `Company` C ON(C.CompanyId = D.CompanyId) ");
                }
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                conditionQuery.AppendLine(@"WHERE ");
                conditionQuery.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                sortQuery.AppendLine(@"ORDER BY ");
                sortQuery.AppendLine(@"   " + queryParser.SortString);
            }

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   D.`DepartmentId` ");
            query.AppendLine(@"  ,D.`DepartmentCode` ");
            query.AppendLine(@"  ,D.`CompanyId` ");
            query.AppendLine(@"  ,D.`Name` ");
            query.AppendLine(@"  ,D.`RVersion` ");
            query.AppendLine(@"  ,D.`Status` ");
            query.AppendLine(@"  ,D.`CreaterId` ");
            query.AppendLine(@"  ,D.`CreateTime` ");
            query.AppendLine(@"  ,D.`UpdatorId` ");
            query.AppendLine(@"  ,D.`UpdateTime` ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   `Department` D ");
            query.AppendLine(joinQuery.ToString());
            query.AppendLine(conditionQuery.ToString());
            query.AppendLine(sortQuery.ToString());

            if (pager != null && pager.PageSize != 0 && pager.StartRecord >= 0)
            {
                query.AppendLine(@" LIMIT " + pager.StartRecord.ToString() + "," + pager.PageSize + " ");
            }

            query.AppendLine(@"; ");

            if (tran != null)
            {
                resultSet = MySqlHelper.ExecuteDataset((MySqlConnection)tran.Connection, query.ToString(), (MySqlParameter[])queryParser.ParamCollection.ToArray().ToArray());
            }
            else
            {
                resultSet = MySqlHelper.ExecuteDataset(this.CurrentConnectionString, query.ToString(), (MySqlParameter[])queryParser.ParamCollection.ToArray().ToArray());
            }

            if (resultSet != null)
            {
                if (pager != null)
                {
                    pDataTable.PageIndex = pager.CurrentPage;
                }

                pDataTable.TotalCount = this.Count(departmentSearcher, tran);
                pDataTable.RecordList = resultSet.Tables[0];
            }

            return(pDataTable);
        }