Ejemplo n.º 1
0
        private void FindApiClientArg(EntityConfig friend, ApiItem item, ProjectConfig apiProject)
        {
            var entity = GetEntity(p => p != friend && p.ReferenceKey == friend.Key);
            var count  = friend.Properties.Count(p => p.Name != "ClientNo");

            switch (count)
            {
            case 0:
                item.ResultArg = null;
                if (entity != null)
                {
                    entity.Option.IsDelete = true;
                }
                return;

            case 1:
                item.ResultArg =
                    CppTypeHelper.CppTypeToCsType(friend.Properties.FirstOrDefault(p => p.Name != "ClientNo"));
                if (entity != null)
                {
                    entity.Option.IsDelete = true;
                }
                return;
            }
            if (entity == null)
            {
                entity = new EntityConfig
                {
                    Parent  = apiProject,
                    Project = apiProject.Name,
                    CppName = item.CallArg,
                    Name    = ToClientName(item.CallArg),
                    Tag     = friend.Tag
                };
                apiProject.Add(entity);
            }
            entity.NoDataBase   = true;
            entity.ReferenceKey = friend.Key;
            entity.Caption      = item.Caption + "命令调用参数";
            entity.Description  = item.Caption + "命令调用参数";
            item.ResultArg      = entity.Name;

            foreach (var property in friend.Properties)
            {
                var fp = entity.Properties.FirstOrDefault(p => p.ReferenceKey == property.Key)
                         ?? entity.Properties.FirstOrDefault(p => p.Name == property.Name);
                if (fp == null)
                {
                    fp = new PropertyConfig();
                    fp.CopyFrom(property);
                    fp.Parent = entity;
                    entity.Add(fp);
                }
                fp.Parent = entity;
                fp.Option.ReferenceKey = property.Option.Key;
                fp.Caption             = property.Caption;
                fp.Tag = entity.Tag + "," + property.Name;
            }
        }
        private void FindNitifyClientEntity(EntityConfig friend, ProjectConfig apiProject, NotifyItem item)
        {
            var entity = GlobalConfig.GetEntity(p => p != friend && p.Tag == friend.Tag);

            if (entity == null)
            {
                entity = new EntityConfig
                {
                    Parent      = apiProject,
                    Project     = apiProject.Name,
                    CppName     = friend.Name,
                    Name        = ToClientName(friend.Name),
                    Caption     = item.Caption,
                    Description = item.Caption + "(消息通知)",
                    IsClass     = false,
                    Classify    = friend.Classify,
                    Tag         = friend.Tag
                };
                apiProject.Entities.Add(entity);
                SolutionConfig.Current.Entities.Add(entity);
            }
            item.ClientEntity = entity.Name;
            if (entity.PrimaryColumn == null)
            {
                entity.Properties.Add(new PropertyConfig
                {
                    Name         = entity.Name + "Id",
                    Caption      = entity.Caption + "ID",
                    Description  = entity.Caption + "ID",
                    IsPrimaryKey = true,
                    IsIdentity   = true,
                    CsType       = "int",
                    CppType      = "int",
                    Parent       = entity
                });
            }
            foreach (var property in friend.Properties)
            {
                property.CsType = CppTypeHelper.CppTypeToCsType(property);
                property.Tag    = friend.Tag + "," + property.Name;
                var fp = entity.Properties.FirstOrDefault(p => p.Tag != null && p.Tag == property.Tag)
                         ?? entity.Properties.FirstOrDefault(p => p.Name == property.Name);
                if (fp == null)
                {
                    fp = new PropertyConfig();
                    fp.CopyFrom(property);
                    fp.Parent = entity;
                    entity.Properties.Add(fp);
                }
                fp.Parent  = entity;
                fp.Tag     = property.Tag;
                fp.Caption = property.Caption;
            }
        }
 internal void RepairCpp(bool repair, EntityConfig friend = null)
 {
     if (friend != null)
     {
         if (RepairTag(friend, Property.Parent.Tag))
         {
             Property.CsType = CppTypeHelper.CppTypeToCsType(Property);
         }
     }
     if (!repair)
     {
         //FindOld();
         CheckEnum();
         CheckStruct();
     }
 }
        private void FindApiClientArg(EntityConfig friend, ApiItem item, ProjectConfig apiProject)
        {
            var entity = GlobalConfig.GetEntity(p => p != friend && p.Tag == friend.Tag);
            var count  = friend.Properties.Count(p => p.Name != "ClientNo");

            switch (count)
            {
            case 0:
                item.ResultArg = null;
                if (entity != null)
                {
                    entity.IsDelete = true;
                }
                return;

            case 1:
                item.ResultArg =
                    CppTypeHelper.CppTypeToCsType(friend.Properties.FirstOrDefault(p => p.Name != "ClientNo"));
                if (entity != null)
                {
                    entity.IsDelete = true;
                }
                return;
            }
            if (entity == null)
            {
                entity = new EntityConfig
                {
                    Parent  = apiProject,
                    Project = apiProject.Name,
                    CppName = item.CallArg,
                    Name    = ToClientName(item.CallArg)
                };
                apiProject.Entities.Add(entity);
                Solution.Entities.Add(entity);
            }
            entity.IsClass     = true;
            entity.Tag         = friend.Tag;
            entity.Caption     = item.Caption + "命令调用参数";
            entity.Description = item.Caption + "命令调用参数";
            item.ResultArg     = entity.Name;

            foreach (var property in friend.Properties)
            {
                property.CsType = CppTypeHelper.CppTypeToCsType(property);
                if (property.Name == "ClientNo")
                {
                    continue;
                }
                property.Tag = friend.Tag + "," + property.Name;
                var fp = entity.Properties.FirstOrDefault(p => p.Tag != null && p.Tag == property.Tag)
                         ?? entity.Properties.FirstOrDefault(p => p.Name == property.Name);
                if (fp == null)
                {
                    fp = new PropertyConfig();
                    fp.CopyFrom(property);
                    fp.Parent = entity;
                    entity.Properties.Add(fp);
                }
                fp.Parent  = entity;
                fp.Tag     = property.Tag;
                fp.Caption = property.Caption;
            }
        }