Пример #1
0
        /// <summary>
        /// 获得分页列表,无论是否是缓存实体都从数据库直接拿取数据
        /// </summary>
        /// <param name="pPageIndex">页数</param>
        /// <param name="pPageSize">每页列表</param>
        /// <param name="pOrderBy">排序</param>
        /// <param name="pSortExpression">排序字段</param>
        /// <param name="pRecordCount">列表行数</param>
        /// <returns>数据分页</returns>
        public static List <ProjectTypeInfo> GetPagedList(int pPageIndex, int pPageSize, SortDirection pOrderBy, string pSortExpression, out int pRecordCount)
        {
            if (pPageIndex <= 1)
            {
                pPageIndex = 1;
            }
            List <ProjectTypeInfo> list = new List <ProjectTypeInfo>();

            Query q = ProjectType.CreateQuery();

            q.PageIndex = pPageIndex;
            q.PageSize  = pPageSize;
            q.ORDER_BY(pSortExpression, pOrderBy.ToString());
            ProjectTypeCollection collection = new  ProjectTypeCollection();

            collection.LoadAndCloseReader(q.ExecuteReader());

            foreach (ProjectType projectType  in collection)
            {
                ProjectTypeInfo projectTypeInfo = new ProjectTypeInfo();
                LoadFromDAL(projectTypeInfo, projectType);
                list.Add(projectTypeInfo);
            }
            pRecordCount = q.GetRecordCount();

            return(list);
        }
Пример #2
0
        /// <summary>
        /// 获得数据列表
        /// </summary>
        /// <returns></returns>
        public static List <ProjectTypeInfo> GetList()
        {
            string cacheKey = GetCacheKey();

            //本实体已经注册成缓存实体,并且缓存存在的时候,直接从缓存取
            if (CachedEntityCommander.IsTypeRegistered(typeof(ProjectTypeInfo)) && CachedEntityCommander.GetCache(cacheKey) != null)
            {
                return(CachedEntityCommander.GetCache(cacheKey) as List <ProjectTypeInfo>);
            }
            else
            {
                List <ProjectTypeInfo> list       = new List <ProjectTypeInfo>();
                ProjectTypeCollection  collection = new  ProjectTypeCollection();
                Query qry = new Query(ProjectType.Schema);
                collection.LoadAndCloseReader(qry.ExecuteReader());
                foreach (ProjectType projectType in collection)
                {
                    ProjectTypeInfo projectTypeInfo = new ProjectTypeInfo();
                    LoadFromDAL(projectTypeInfo, projectType);
                    list.Add(projectTypeInfo);
                }
                //生成缓存
                if (CachedEntityCommander.IsTypeRegistered(typeof(ProjectTypeInfo)))
                {
                    CachedEntityCommander.SetCache(cacheKey, list);
                }
                return(list);
            }
        }
Пример #3
0
        //数据持久化
        internal static void  SaveToDb(ProjectTypeInfo pProjectTypeInfo, ProjectType pProjectType, bool pIsNew)
        {
            pProjectType.ProjectTypeId   = pProjectTypeInfo.projectTypeId;
            pProjectType.ProjectTypeName = pProjectTypeInfo.projectTypeName;
            pProjectType.IsNew           = pIsNew;
            string UserName = SubsonicHelper.GetUserName();

            try
            {
                pProjectType.Save(UserName);
            }
            catch (Exception ex)
            {
                LogManager.getInstance().getLogger(typeof(ProjectTypeInfo)).Error(ex);
                if (ex.Message.Contains("插入重复键"))               //违反了唯一键
                {
                    throw new AppException("此对象已经存在");          //此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示
                }
                throw new AppException("保存失败");
            }
            pProjectTypeInfo.projectTypeId = pProjectType.ProjectTypeId;
            //如果缓存存在,更新缓存
            if (CachedEntityCommander.IsTypeRegistered(typeof(ProjectTypeInfo)))
            {
                ResetCache();
            }
        }
Пример #4
0
 /// <summary>
 /// 批量装载
 /// </summary>
 internal static void LoadFromDALPatch(List <ProjectTypeInfo> pList, ProjectTypeCollection pCollection)
 {
     foreach (ProjectType projectType in pCollection)
     {
         ProjectTypeInfo projectTypeInfo = new ProjectTypeInfo();
         LoadFromDAL(projectTypeInfo, projectType);
         pList.Add(projectTypeInfo);
     }
 }
Пример #5
0
        public ProjectTypeInfo GetProjectTypeInfoById(int ProjectTypeId)
        {
            ProjectTypeInfo projectTypeInfo = null;             //

            try
            {
                projectTypeInfo = new ProjectTypeInfo(ProjectTypeId);
            }
            catch (AppException)
            {
                return(null);
            }

            return(projectTypeInfo);
        }
Пример #6
0
 private void LoadFromId(int projectTypeId)
 {
     if (CachedEntityCommander.IsTypeRegistered(typeof(ProjectTypeInfo)))
     {
         ProjectTypeInfo projectTypeInfo = Find(GetList(), projectTypeId);
         if (projectTypeInfo == null)
         {
             throw new AppException("未能在缓存中找到相应的键值对象");
         }
         Copy(projectTypeInfo, this);
     }
     else
     {
         ProjectType projectType = new ProjectType(projectTypeId);
         if (projectType.IsNew)
         {
             throw new AppException("尚未初始化");
         }
         LoadFromDAL(this, projectType);
     }
 }
Пример #7
0
 /// <summary>
 /// 复制为另一个对象
 /// </summary>
 /// <param name="pIndustryTypeInfoTo"></param>
 public void CopyTo(ProjectTypeInfo pProjectTypeInfoTo)
 {
     Copy(this, pProjectTypeInfoTo);
 }
Пример #8
0
 //从后台获取数据
 internal static void  LoadFromDAL(ProjectTypeInfo pProjectTypeInfo, ProjectType pProjectType)
 {
     pProjectTypeInfo.projectTypeId   = pProjectType.ProjectTypeId;
     pProjectTypeInfo.projectTypeName = pProjectType.ProjectTypeName;
     pProjectTypeInfo.Loaded          = true;
 }
Пример #9
0
 /// <summary>
 /// 复制一个对象,采用硬编码的方式,避免反射的低效
 /// </summary>
 /// <param name="pIndustryTypeInfoFrom"></param>
 /// <param name="pIndustryTypeInfoTo"></param>
 public static void Copy(ProjectTypeInfo pProjectTypeInfoFrom, ProjectTypeInfo pProjectTypeInfoTo)
 {
     pProjectTypeInfoTo.ProjectTypeId   = pProjectTypeInfoFrom.projectTypeId;
     pProjectTypeInfoTo.ProjectTypeName = pProjectTypeInfoFrom.projectTypeName;
     pProjectTypeInfoTo.Loaded          = pProjectTypeInfoFrom.Loaded;
 }
Пример #10
0
 public object  SaveProjectTypeInfo(ProjectTypeInfo projectTypeInfo)
 {
     projectTypeInfo.Save();
     return(projectTypeInfo.ProjectTypeId);
 }
Пример #11
0
 public List <ProjectTypeInfo> GetPagedList(int pPageIndex, int pPageSize, SortDirection pOrderBy, string pSortExpression, out int pRecordCount)
 {
     return(ProjectTypeInfo.GetPagedList(pPageIndex, pPageSize, pOrderBy, pSortExpression, out pRecordCount));
 }
Пример #12
0
 public List <ProjectTypeInfo> GetProjectTypeInfoList()
 {
     return(ProjectTypeInfo.GetList());
 }
Пример #13
0
        public void DeleteById(ProjectTypeInfo pProjectTypeInfo)
        {
            ProjectTypeInfo projectTypeInfo = new ProjectTypeInfo(pProjectTypeInfo.ProjectTypeId);

            projectTypeInfo.Delete();
        }