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); }
//--- 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); }
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; }