private void writeClassNameBegin(AutoMation entity, StreamWriter writer, bool p)
        {
            //写状态
            foreach (var state in entity.StateList)
            {
                writer.WriteLine(@"        Ipms." + _Model + @"." + entity.Field + @"." + state.name + @" = '" + state.name + @"';");
            }
            writer.WriteLine();
            //写Render
            writer.WriteLine(@"    Ipms."+_Model+@"."+entity.Field+@"Render = function (value, metadata) {");
            writer.WriteLine(@"                  switch (value) {");
            foreach (var state in entity.StateList)
            {
                writer.WriteLine(@"                      case " + state.name + @" :");
                writer.WriteLine(@"                      return '" + state.stateLabel + @"';");
            }

            writer.WriteLine(@"                      default:");
            writer.WriteLine(@"                      return '未知'");
            writer.WriteLine(@"                                 }");
            writer.WriteLine(@"  }");
            writer.WriteLine();

            //写FilterItems
            writer.WriteLine(@"    Ipms." + _Model + @"." + entity.Field + @"RenderFilterItems = [");
            foreach (var state in entity.StateList)
            {
                writer.WriteLine(@"     {");
                writer.WriteLine(@"       id: ' " + state.name + @"',");
                writer.WriteLine(@"       text: '" + state.stateLabel + @"'");
                writer.WriteLine(@"     },");
            }
            writer.WriteLine(@"]");
        }
Esempio n. 2
0
 private static void buildEntityItemList(List<AutoMation> entityList, AutoMation currentEntity, XmlNode node)
 {
     currentEntity.Name = Convert.ToString(getStringFromAttribute(node, "signature"));
     currentEntity.Module = Convert.ToString(getStringFromAttribute(node, "module"));
     currentEntity.Field = Convert.ToString(getStringFromAttribute(node, "field"));
     entityList.Add(currentEntity);
 }
        private void buildEntityCode(AutoMation entity)
        {
            var path = _Path + entity.Module;
            if (!Directory.Exists(path)) Directory.CreateDirectory(path);

            buildMainCode(entity);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="path"></param>
        /// <param name="autoMata"></param>
        public void Generate(string path, AutoMation[] autoMata)
        {
            _Path = path.EndsWith("/") ? path : path + "/";
            _AutoMata = autoMata;

            foreach (var entity in autoMata)
                buildEntityCode(entity);
        }
Esempio n. 5
0
 private static List<State> getItemsFromNode(XmlNodeList xmlNodeList, AutoMation currentEntity)
 {
     var stateList = new List<State>();
     foreach (XmlNode node in xmlNodeList)
     {
         stateList.Add(getItemFromNode(node));
     }
     return stateList;
 }
        private void buildEntityCode(AutoMation entity)
        {
            if (entity.Module.ToLower() == "memberapplys")
                _Model = "expertApplys";
            else
                _Model = entity.Module.ToLower();

            var path = _Path + _Model;
            if (!Directory.Exists(path)) Directory.CreateDirectory(path);

            buildMainCode(entity);
        }
        private void buildMainCode(AutoMation entity)
        {
            string stateFild = _Path + _Model + "/" + entity.Field + ".js";
            if (File.Exists(stateFild))//当前的Extjs实体枚举类型存在
                File.Delete(stateFild);
            var writer = File.CreateText(stateFild);

            writeNameSpaceBegin(entity, writer);

            writeClassNameBegin(entity, writer, true);
            writeClassNameEnd(writer);

            writer.Close();
        }
        /// <summary>
        /// 生成Linq的实体代码
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="baseNameSpace">基于的命名空间</param>
        /// <param name="autoMata">要生成的实体</param>
        /// <param name="usingNameSpaces">需要附加的命名空间</param>
        /// <param name="overwriteMainCode">是否覆盖已有的主代码文件</param>
        public void Generate(string path, string baseNameSpace, AutoMation[] autoMata, string[] usingNameSpaces, bool overwriteMainCode)
        {
            if (!Directory.Exists(path))
                throw new ArgumentNullException("目录不存在。");

            _Path = path.EndsWith("/") ? path : path + "/";
            _AutoMata = autoMata;
            _BaseNameSpace = baseNameSpace;
            _UsingNameSpaces = usingNameSpaces;
            _OverwriteMainCode = overwriteMainCode;

            foreach (var entity in autoMata)
                buildEntityCode(entity);
        }
 private void writeClassNameBegin(AutoMation entity, StreamWriter writer, bool withBaseClass)
 {
     writer.WriteLine(@"    /// <summary>");
     writer.WriteLine(@"    /// " + entity.Name+"状态类型");
     writer.WriteLine(@"    /// </summary>");
         writer.WriteLine(@"    public enum {0}", entity.Field);
     writer.WriteLine(@"    {");
     foreach (var state in entity.StateList)
     {
     writer.WriteLine(@"    /// <summary>");
     writer.WriteLine(@"    /// " + state.stateLabel);
     writer.WriteLine(@"    /// </summary>");
     writer.WriteLine(@"      " + state.name + @"=" + state.stateValue + @",");
     }
 }
Esempio n. 10
0
        private static void buildEntityList(List<AutoMation> entityList, AutoMation parentEntity, XmlNode entityNode)
        {
            var currentEntity = parentEntity;

            //此节点对应表的情况
                currentEntity = new AutoMation();
            //解析列和表
            foreach (XmlNode node in entityNode.ChildNodes)
            {
                if (node.Name == "Entity")
                    buildEntityItemList(entityList, currentEntity, node);
                if (node.Name == "StateSet")
                    currentEntity.StateList.AddRange(getItemsFromNode(node.ChildNodes, currentEntity));
            }
        }
        private void buildMainCode(AutoMation entity)
        {
            string stateFild = _Path + entity.Module + "/" + entity.Field + ".cs";
            if (File.Exists(stateFild))//当前的实体枚举类型存在
                File.Delete(stateFild);

            var writer = File.CreateText(stateFild);

            writeUsingNameSpace(writer, entity);
            writeNameSpaceBegin(entity, writer);

            writeClassNameBegin(entity, writer, true);
            writeClassNameEnd(writer);

            writer.WriteLine();

            writeNameSapceEnd(writer);

            writer.Close();
        }
 private void writeNameSpaceBegin(AutoMation entity, StreamWriter writer)
 {
     writer.WriteLine();
     writer.WriteLine(@"if (!Ipms." + _Model + @")" );
     writer.WriteLine(@"      Ext.namespace('Ipms." + _Model + @"');");
     writer.WriteLine();
     writer.WriteLine(@"Ext.namespace('Ipms."+_Model+@"."+entity.Field+@"');");
     writer.WriteLine();
 }
 private void writeUsingNameSpace(StreamWriter writer, AutoMation entity)
 {
     List<string> nsList = new List<string>();
     nsList.Add("using System;");
     nsList.Add("using System.Collections.Generic;");
     nsList.Add("using System.Data.Linq;");
     nsList.Add("using System.Linq;");
     nsList.Add("using System.Text;");
     nsList.Add("");
     foreach (var ns in nsList)
         writer.WriteLine(ns);
 }
 private void writeNameSpaceBegin(AutoMation entity, StreamWriter writer)
 {
     writer.WriteLine(@"namespace " + _BaseNameSpace + @"." + entity.Module);
     writer.WriteLine(@"{");
 }