Exemple #1
0
        public static DBFields GetDBFields <TEntityType>(this TEntityType entity) where TEntityType : IMvxDBEntity
        {
            if (entity == null)
            {
                return(null);
            }
            var map = MvxDBMapping.Get(entity.GetType());

            if (map == null || map.PropertiesInfos == null || map.PropertiesInfos.Count == 0)
            {
                return(null);
            }
            var fields = new DBFields();

            foreach (var property in map.PropertiesInfos)
            {
                var value = property.GetValue(entity);
                if (value == null)
                {
                    continue;
                }
                fields.SetEx(property.Name, value);
            }
            return(fields);
        }
Exemple #2
0
        public void Sync()
        {
            if (DropboxDatastore == null)
            {
                return;
            }
            var changes = DropboxDatastore.Sync();

            if (changes != null && changes.Count > 0)
            {
                var messageType = typeof(DrbxReceivedMessage <>);
                var messenger   = Mvx.Resolve <IMvxMessenger>();
                foreach (var change in changes)
                {
                    var map = MvxDBMapping.Get(change.Key);
                    if (map == null)
                    {
                        continue;
                    }
                    Type[] typeArgs = { map.Type };
                    var    makeme   = messageType.MakeGenericType(typeArgs);
                    foreach (var record in change.Value)
                    {
                        var m = Activator.CreateInstance(makeme, this, record.ToMvxDBRecord()) as MvxMessage;
                        messenger.Publish(m, makeme);
                    }
                }
            }
        }
Exemple #3
0
        public static MvxDBRecord ToMvxDBRecord(this DBRecord record)
        {
            if (record == null)
            {
                return(null);
            }
            var map = MvxDBMapping.Get(record.Table.Id);

            return(new MvxDBRecord(record));
        }