Пример #1
0
        public IList <PageTextContainer> Pages_GetContents(IList <ulong> pageids)
        {
            List <PageTextContainer> ret = new List <PageTextContainer>();

            if (ArrayUtil.IsNullOrEmpty(pageids))
            {
                return(ret);
            }

            string pageIdsText = pageids.ToCommaDelimitedString();

            Catalog.NewQuery(
                string.Format(
                    @"/* Pages_GetContents */
SELECT p.page_id, p.page_timestamp, p.page_text
FROM pages p
WHERE p.page_id in ({0})",
                    pageIdsText))
            .Execute(delegate(IDataReader dr) {
                while (dr.Read())
                {
                    PageTextContainer ptc = new PageTextContainer(
                        DbUtils.Convert.To <ulong>(dr["page_id"], 0),
                        DbUtils.Convert.To <string>(dr["page_text"], string.Empty),
                        DbUtils.ToDateTime(dr["page_timestamp"].ToString())
                        );

                    ret.Add(ptc);
                }
            });
            return(ret);
        }
Пример #2
0
        //--- Methods ---

        // TODO (brigettek): page text needs to be stored separately from the page
        public string GetText(IDekiDataSession session)
        {
            //page_text is lazy loaded if it doesn't exist.
            if (_text == null)
            {
                if (ID != 0)
                {
                    PageTextContainer pageTextContainer = session.Pages_GetContents(new List <ulong>()
                    {
                        ID
                    }).FirstOrDefault();
                    if (null != pageTextContainer)
                    {
                        // TODO (brigettek): Do we still need to go to the old table?
                        if (pageTextContainer.TimeStamp == TimeStamp)
                        {
                            _text = pageTextContainer.Text;
                        }
                        else
                        {
                            OldBE oldPage = session.Old_GetOldByTimestamp(ID, TimeStamp);
                            if (oldPage != null)
                            {
                                _text = oldPage.Text;
                            }
                            else
                            {
                                throw new OldIdNotFoundException(ID, TimeStamp);
                            }
                        }
                    }
                }
                else
                {
                    _text = string.Empty;
                }
            }
            return(_text);
        }
Пример #3
0
        public IList<PageTextContainer> Pages_GetContents(IList<ulong> pageids) {
            List<PageTextContainer> ret = new List<PageTextContainer>();
            if(ArrayUtil.IsNullOrEmpty(pageids)) {
                return ret;
            }

            string pageIdsText = pageids.ToCommaDelimitedString();
            Catalog.NewQuery(
string.Format(
@"/* Pages_GetContents */
SELECT p.page_id, p.page_timestamp, p.page_text
FROM pages p
WHERE p.page_id in ({0})",
pageIdsText))
                .Execute(delegate(IDataReader dr) {
                while(dr.Read()) {
                    PageTextContainer ptc = new PageTextContainer(
                        DbUtils.Convert.To<ulong>(dr["page_id"], 0),
                        DbUtils.Convert.To<string>(dr["page_text"], string.Empty),
                        DbUtils.ToDateTime(dr["page_timestamp"].ToString())
                    );

                    ret.Add(ptc);
                }
            });
            return ret;
        }