internal XFile OpenPageOrCreate(XFile table) { lock (GetLock()) { XElement page = table.Pages().FirstOrDefault(delegate(XElement s) { XAttribute fullAtt = s.Attribute("full"); return(fullAtt == null || fullAtt.Value != "true"); }); string pageFileName = ""; if (page == null) { pageFileName = string.Format("{0}.{1}", ValueHelper.PickCode(), "xpag"); page = new XElement("Page", new XAttribute("file", pageFileName)); page.Add(new XAttribute("full", false)); table.Root().Element("Pages").Add(page); } else { pageFileName = page.Attribute("file").Value; } //this.indexService.Index(type, autonumbers, page); return(this.OpenFileOrCreate(pageFileName, typeof(TablePage))); } }