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))); } }
//returns Type internal string GetItemPage(Type type, string code) { XFile tableFile = this.OpenFileOrCreate(type.FullName + ".xtab"); ////.NETCore typename compatibility //if (tableFile == null) //{ // string typeName = type.Namespace + "+" + type.Name; // tableFile = this.OpenFileOrCreate(typeName + ".xtab"); //} foreach (var file in tableFile.Pages().Select(s => s.Attribute("file").Value)) { XFile pageFile = this.OpenFileOrCreate(file); if (pageFile.Rows().Where(delegate(XElement s) { XAttribute sa = s.Attribute("code"); return(null != sa && sa.Value == code); }).Any()) { return(file.Replace(".xpag", "")); } } return(null); }
//returns the Type by .xpag file code internal Type GetPageType(string xpagCode) { string[] files = System.IO.Directory.GetFiles(root, "*.xtab"); foreach (var file in files) { XFile tableFile = this.OpenFileOrCreate(file); if (tableFile != null && tableFile.Pages().Where(s => s.Attribute("file").Value == xpagCode + ".xpag").Any()) { string typeString = System.IO.Path.GetFileNameWithoutExtension(file); return(this.propertyService.RegisteredType(typeString)); } } return(null); }
//returns Type internal string GetItemPage(Type type, string code) { XFile tableFile = this.OpenFileOrCreate(type.FullName + ".xtab"); foreach (var file in tableFile.Pages().Select(s => s.Attribute("file").Value)) { XFile pageFile = this.OpenFileOrCreate(file); if (pageFile.Rows().Where(delegate(XElement s) { XAttribute sa = s.Attribute("code"); return(null != sa && sa.Value == code); }).Any()) { return(file.Replace(".xpag", "")); } } return(null); }