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)); } }
public DbObjectPropertyNode(SexyDatabase database, DbPropertyMetaData metaData, IRxObject container, DirectoryInfo directory) : base(database, metaData, container) { Directory = directory; container.GetChangedByProperty(metaData.Property).Subscribe(OnChanged); }