示例#1
0
 /// <summary>
 /// 保存
 /// </summary>
 public void SaveProject(string dir, ConfigWriter write)
 {
     using (WorkModelScope.CreateScope(WorkModel.Saving))
     {
         dir = write.SaveProject(this, dir);
         SaveTypedefs(dir, write);
         SaveNotifies(dir, write);
     }
 }
        public void ApiArgToClient()
        {
            var apiProject = Solution.Projects.FirstOrDefault(p => p?.Name == "CmdArg");

            if (apiProject == null)
            {
                Solution.Projects.Add(apiProject = new ProjectConfig
                {
                    Name    = "CmdArg",
                    Caption = "命令调用参数"
                });
            }
            foreach (var item in Solution.ApiItems)
            {
                var friend = GlobalConfig.GetEntity(item.CallArg);
                if (friend == null)
                {
                    item.ResultArg = null;
                    continue;
                }
                var kw     = friend.Caption.MulitReplace2("", "查询", "请求", "结构", "应答", "操作");
                var result = GlobalConfig.GetEntity(p => p != friend && p.Caption.Contains(kw));
                if (result != null)
                {
                    item.ResultArg = result.Name;
                }
                friend.Tag = Solution.Tag + "," + friend.Name;
                if (friend.Properties.Count == 0)
                {
                    item.ResultArg = null;
                    continue;
                }
                if (friend.Properties.Any(p => p.Name == "ClientNo"))
                {
                    item.IsUserCommand = true;
                }
                FindApiClientArg(friend, item, apiProject);
            }
            ConfigWriter writer = new ConfigWriter
            {
                Solution  = Solution,
                Directory = Path.GetDirectoryName(Solution.FileName)
            };

            writer.SaveApies();
            writer.SaveProject(apiProject, false);
        }
        /// <summary>
        /// 通知参数处理
        /// </summary>
        public void NotifyArgToClient()
        {
            var apiProject = Solution.Projects.FirstOrDefault(p => p.Name == "NofityData");

            if (apiProject == null)
            {
                Solution.Projects.Add(apiProject = new ProjectConfig
                {
                    Name    = "NofityData",
                    Caption = "消息通知数据"
                });
            }
            foreach (var item in Solution.NotifyItems)
            {
                var friend = GlobalConfig.GetEntity(item.NotifyEntity);
                if (friend == null)
                {
                    item.ClientEntity = null;
                    continue;
                }
                if (item.IsCommandResult)
                {
                    FindNityfyApi(item, friend);
                }
                else
                {
                    item.CommandId = null;
                }
                friend.Tag = Solution.Tag + "," + friend.Name;
                if (friend.Properties.Count == 0)
                {
                    item.ClientEntity = null;
                    continue;
                }
                FindNitifyClientEntity(friend, apiProject, item);
            }

            ConfigWriter writer = new ConfigWriter
            {
                Solution  = Solution,
                Directory = Path.GetDirectoryName(Solution.FileName)
            };

            writer.SaveNotifies();
            writer.SaveProject(apiProject, false);
        }