コード例 #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)));
            }
        }
コード例 #2
0
        //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);
        }
コード例 #3
0
 //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);
 }
コード例 #4
0
ファイル: IOService.cs プロジェクト: mhsallam/xod.core
        //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);
        }