Пример #1
0
        public DbValuePropertyNode(SexyDatabase database, DbPropertyMetaData metaData, IRxObject container, FileInfo file) : base(database, metaData, container)
        {
            File = file;

            var isSavePending = false;

            container.GetChangedByProperty(metaData.Property)
            .Do(x => Database.StartAction(() => !isSavePending && (isSavePending = true)))
            .Throttle(TimeSpan.FromSeconds(.5))
            .Subscribe(x =>
            {
                OnChanged(x);
                database.FinishAction(() => isSavePending = false);
            });

            if (File.Exists)
            {
                Load();
            }
            else
            {
                System.IO.File.WriteAllText(file.FullName, "");
            }

            var newValue = metaData.Property.GetValue(container, null);

            if (newValue != metaData.DefaultValue)
            {
                OnChanged(new PropertyChanged <object>(metaData.Property, null, newValue));
            }
        }
Пример #2
0
        public DbObjectPropertyNode(SexyDatabase database, DbPropertyMetaData metaData, IRxObject container, DirectoryInfo directory) : base(database, metaData, container)
        {
            Directory = directory;

            container.GetChangedByProperty(metaData.Property).Subscribe(OnChanged);
        }