/// <summary> /// Forward event /// </summary> /// <param name="sender"></param> void OnEvent(object sender) { var _observer = observer; if (_observer == null) { return; } // Figure out change type bool exists = fileProvider.GetFileInfo(FilePath).Exists; bool _existed = Interlocked.CompareExchange(ref existed, exists ? 1 : 0, existed) == 1; WatcherChangeTypes changeType = default; if (_existed) { changeType = exists ? WatcherChangeTypes.Changed : WatcherChangeTypes.Deleted; } else { changeType = exists ? WatcherChangeTypes.Created : WatcherChangeTypes.Deleted; } IAssetSourceEvent ae = new AssetSourceChangedEvent(assetSource, changeType); observer.OnNext(ae); }
/// <summary> /// Forward event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnEvent(object sender, FileSystemEventArgs e) { var _observer = Observer; if (_observer == null) { return; } IAssetSourceEvent ae = new AssetSourceChangedEvent(AssetSource, e.ChangeType); Observer.OnNext(ae); }