예제 #1
0
        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)));
            }
        }