加入收藏 - 网站地图 - 网站搜索 -
阅读新闻

分页缓存机制(单用户)(C#)

[日期:01-24] [字体: ]

/// <summary>
        /// Get Message List From Cache
        /// </summary>
        /// <param name="MsgCache">IDictionary</param>
        /// <returns>IList</returns>
        public static IList GetMessageListFromCache(PaginationGoPageObject pgpo)
        {
            IList messageDataObjects = CachePO["MessageList"] as IList;

            int FirstPageInAboutArea = GetFirstPageInAboutArea(pgpo.CachePageCount, pgpo.CurrentPage);//取得范围内的首页号

            IList messageBusinessObjects = null;

            if (messageDataObjects != null && messageDataObjects.Count != 0)//判断数据是否存在
            {
                if ((pgpo.CurrentPage >= ((int)CachePO.Msg["currentPage"])) && (pgpo.CurrentPage < ((int)CachePO.Msg["currentPage"] + pgpo.CachePageCount)))//判断当前页的有效性
                {
                    messageBusinessObjects = new ArrayList(messageDataObjects.Count);

                    foreach (MessageDataObject MessageDO in messageDataObjects)
                    {
                        messageBusinessObjects.Add(new MessageBusinessObject(MessageDO));
                    }
                }
                else//缓存中的数据不在请求范围内
                {
                    messageDataObjects = MessageDataAccessObject.GetMessageListFromCacheBySqlTopIn(pgpo, FirstPageInAboutArea);
                    messageBusinessObjects = null;

                    if (messageDataObjects == null || messageDataObjects.Count == 0)
                    {
                        messageBusinessObjects = null;
                    }
                    else
                    {
                        messageBusinessObjects = new ArrayList(messageDataObjects.Count);

                        foreach (MessageDataObject MessageDO in messageDataObjects)
                        {
                            messageBusinessObjects.Add(new MessageBusinessObject(MessageDO));
                        }

                        CachePO["MessageList"] = messageDataObjects;//写入缓存

                        IDictionary pageMsg = new SortedList();
                        pageMsg["currentPage"] = FirstPageInAboutArea;
                        CachePO.Msg = pageMsg;//写入附加信息
                    }
                }
            }
            else
            {
                messageDataObjects = MessageDataAccessObject.GetMessageListFromCacheBySqlTopIn(pgpo,FirstPageInAboutArea);
                messageBusinessObjects = null;

                if (messageDataObjects == null || messageDataObjects.Count == 0)
                {
                    messageBusinessObjects = null;
                }
                else
                {
                    messageBusinessObjects = new ArrayList(messageDataObjects.Count);

                    foreach (MessageDataObject MessageDO in messageDataObjects)
                    {
                        messageBusinessObjects.Add(new MessageBusinessObject(MessageDO));
                    }

                    CachePO["MessageList"] = messageDataObjects;//写入缓存

                    IDictionary pageMsg = new SortedList();
                    pageMsg["currentPage"] = GetFirstPageInAboutArea(pgpo.CachePageCount, pgpo.CurrentPage);
                    CachePO.Msg = pageMsg;//写入附加信息
                }
            }

            return messageBusinessObjects;
        } 


 



 
评论 】 【 推荐 】 【 打印
上一篇:对“三层结构”的深入理解
下一篇:短信群发
相关新闻