Exemplo n.º 1
0
        public async void Invoke()
        {
            var managedClassPropertyAndTypeMap = Model.GetAllManagedClasses();
            var tables           = new Sync.TableBuilder(Model).Build();
            var maxVersionNumber = Model.VersionHead;

            foreach (var managedClassEntry in managedClassPropertyAndTypeMap)
            {
                var dictionarywithData = managedClassEntry.Key.GetValue(Model);
                var activeTable        = tables.First(x => x.Name == managedClassEntry.Value.Name);
                var data      = managedClassEntry.Key.PropertyType.GetProperty("Values").GetValue(dictionarywithData) as IEnumerable <ManagedObjectBase>;
                var classMeta = new ManagedMetaObjectFactory().CreateMetaObject(managedClassEntry.Value);

                var task = new SQL.SqlLoadData()
                {
                    Database             = Config.DataBase,
                    UserID               = Config.DataBaseUserId,
                    Password             = Config.DataBaseUserPassword,
                    Port                 = Config.Port,
                    Server               = Config.Server,
                    DataSet              = data.ToList(),
                    MetaObjectDescriptor = classMeta,
                    TableDescription     = activeTable,
                    ModelContainer       = Model,
                    DataStore            = dictionarywithData
                };

                var readVersionHead = await task.Run();

                maxVersionNumber = Math.Max(maxVersionNumber, readVersionHead);
            }

            ReLoadReferences(Model, managedClassPropertyAndTypeMap, tables);
            Model.VersionHead = Math.Max(Model.VersionHead, maxVersionNumber);
        }
Exemplo n.º 2
0
        public async void Invoke()
        {
            var managedClassesDescription = Model.GetAllManagedClasses();
            var tables = new Sync.TableBuilder(Model).Build();

            foreach (var classEntry in managedClassesDescription)
            {
                var dictionarywithData = classEntry.Key.GetValue(Model);
                var activeTable        = tables.First(x => x.Name == classEntry.Value.Name);
                var data      = classEntry.Key.PropertyType.GetProperty("Values").GetValue(dictionarywithData) as IEnumerable <ManagedObjectBase>;
                var metaModel = new ManagedMetaObjectFactory().CreateMetaObject(classEntry.Value);

                var task = new SQL.SqlPushData()
                {
                    Database             = Config.DataBase,
                    UserID               = Config.DataBaseUserId,
                    Password             = Config.DataBaseUserPassword,
                    Port                 = Config.Port,
                    Server               = Config.Server,
                    DataSet              = data.ToList(),
                    MetaObjectDescriptor = metaModel,
                    TableDescription     = activeTable,
                    ModelContainer       = Model
                };

                await task.Run();
            }
        }
Exemplo n.º 3
0
        private void ReLoadReferences(ModelContainer model, Dictionary <System.Reflection.PropertyInfo, Type> managedClassPropertyAndTypeMap, List <TableDescription> tables)
        {
            foreach (var managedClassEntry in managedClassPropertyAndTypeMap)
            {
                var dictionarywithData = managedClassEntry.Key.GetValue(Model);
                var activeTable        = tables.First(x => x.Name == managedClassEntry.Value.Name);
                var data      = managedClassEntry.Key.PropertyType.GetProperty("Values").GetValue(dictionarywithData) as IEnumerable <ManagedObjectBase>;
                var classMeta = new ManagedMetaObjectFactory().CreateMetaObject(managedClassEntry.Value);

                foreach (var instance in data)
                {
                    instance.ReloadConnections(classMeta, model);
                }
            }
        }
Exemplo n.º 4
0
        private TableDescription BuildTable(Type managedClassType)
        {
            var metaModel = new ManagedMetaObjectFactory().CreateMetaObject(managedClassType);

            var table = new TableDescription()
            {
                Name = metaModel.Name
            };

            foreach (var metaProp in metaModel.Properties)
            {
                table.Columns.Add(new ColumnDescription()
                {
                    Name        = metaProp.Name,
                    Type        = metaProp.Type,
                    SqlType     = GetSqlColumnType(metaProp),
                    IsKey       = metaProp.IsKey,
                    IsReference = metaProp.IsReference
                });
            }

            return(table);
        }