public void New()
        {
            ForeignViewModel model = IoC.Get <ForeignViewModel>();

            model.EntityId = Entity.Id;
            Foreigns.Add(model);
        }
 public void Init()
 {
     CodeForeign[] foreigns = new CodeForeign[0];
     _provider.ExecuteScopedWork(provider =>
     {
         IDataContract contract = provider.GetRequiredService <IDataContract>();
         foreigns = contract.CodeForeigns.Where(m => m.EntityId == Entity.Id).ToArray();
     });
     Foreigns.Clear();
     foreach (CodeForeign foreign in foreigns)
     {
         ForeignViewModel model = _provider.GetRequiredService <ForeignViewModel>();
         model = foreign.MapTo(model);
         Foreigns.Add(model);
     }
 }
Exemplo n.º 3
0
        private void InitialForeigns()
        {
            var properties = Entity.GetType().GetProperties().ToList().FindAll(p => p.GetCustomAttributes(typeof(DBForeignAttribute), true).Length > 0);

            foreach (PropertyInfo proInfo in properties)
            {
                if (ForeignNames.Any(f => f.Equals(proInfo.Name)))
                {
                    continue;
                }

                var type = proInfo.PropertyType;
                var attr = proInfo.GetCustomAttributes(typeof(DBForeignAttribute), true).First() as DBForeignAttribute;
                if (attr == null)
                {
                    continue;
                }
                var foreign = new DBForeign(this, proInfo, attr.Keys, attr.Initial);
                Foreigns.Add(foreign);
            }
        }
        public async void Save()
        {
            if (!CanSave)
            {
                Helper.Notify("实体外键信息验证失败", NotificationType.Warning);
                return;
            }

            CodeForeignInputDto[] dtos   = Foreigns.Select(m => m.MapTo <CodeForeignInputDto>()).ToArray();
            OperationResult       result = null;
            await _provider.ExecuteScopedWorkAsync(async provider =>
            {
                IDataContract contract = provider.GetRequiredService <IDataContract>();
                result = await contract.UpdateCodeForeigns(dtos);
            });

            Helper.Notify(result);
            if (!result.Succeeded)
            {
                return;
            }

            Init();
        }
Exemplo n.º 5
0
 public void AddRoot(AstNode node)
 {
     Roots.Add(node);
     if (node is AstForeign)
     {
         Foreigns.Add((AstForeign)node);
     }
     //else if (node is AstExtend)
     //{
     //    Extends.Add((AstExtend)node);
     //}
     else if (node is AstFunc)
     {
         AddFunc((AstFunc)node);
     }
     else if (node is AstStruct)
     {
         Structs.Add((AstStruct)node);
     }
     else
     {
         TopLevelStatements.Add(node);
     }
 }