private static IEnumerable <Func <IJryVideoDataEngine> > GetLocalAllSourceSetProviders() { var path = Environment.GetCommandLineArgs().First(); var dir = Path.GetDirectoryName(path); if (dir == null) { yield break; } var files = Directory.GetFiles(dir, "JryVideo.Data.*.dll"); var @interface = typeof(IJryVideoDataEngine); foreach (var file in files) { Assembly assembly = null; try { assembly = Assembly.LoadFrom(file); } catch { // ignored } if (assembly == null) { continue; } foreach (var type in assembly.GetExportedTypes() .Where(z => @interface.IsAssignableFrom(z))) { IJryVideoDataEngine instance = null; try { instance = type.CreateInstance <IJryVideoDataEngine>(); } catch { // ignored } if (instance != null) { yield return(type.CreateInstance <IJryVideoDataEngine>); } } } }
public DataCenter(IJryVideoDataEngine dataEngine) { this.ProviderManager = dataEngine; this.CoverManager = new CoverManager(dataEngine.GetCoverSet()); this.SeriesManager = new SeriesManager(this, dataEngine.GetSeriesSet()); this.VideoManager = new VideoManager(dataEngine.GetVideoSet()); this.FlagManager = new FlagManager(dataEngine.GetFlagSet()); this.ArtistManager = new ArtistManager(dataEngine.GetArtistSet()); this.SeriesManager.VideoInfoCreated += this.VideoManager.SeriesManager_VideoInfoCreated; this.SeriesManager.VideoInfoRemoved += this.VideoManager.SeriesManager_VideoInfoRemoved; this.SeriesManager.VideoInfoCreated += this.FlagManager.SeriesManager_VideoInfoCreated; this.SeriesManager.VideoInfoUpdated += this.FlagManager.SeriesManager_VideoInfoUpdated; this.SeriesManager.VideoInfoRemoved += this.FlagManager.SeriesManager_VideoInfoRemoved; this.VideoManager.EntitiesCreated += this.FlagManager.VideoManager_EntitiesCreated; this.VideoManager.EntitiesUpdated += this.FlagManager.VideoManager_EntitiesUpdated; this.VideoManager.EntitiesRemoved += this.FlagManager.VideoManager_EntitiesRemoved; this.FlagManager.FlagChanged += this.VideoManager.FlagManager_FlagChanged; }
public DataCenter(IJryVideoDataEngine dataEngine) : this(true) { this.ProviderManager = dataEngine; this.CoverManager = new CoverManager(dataEngine.GetCoverSet()); this.SeriesManager = new SeriesManager(this, dataEngine.GetSeriesSet()); this.VideoManager = new VideoManager(dataEngine.GetVideoSet()); this.FlagManager = new FlagManager(dataEngine.GetFlagSet()); this.ArtistManager = new ArtistManager(dataEngine.GetArtistSet()); this.VideoRoleManager = new VideoRoleManager(this.SeriesManager, this.ArtistManager, dataEngine.GetVideoRoleInfoSet()); this.UserWatchInfoManager = new UserWatchInfoManager(dataEngine.GetUserWatchInfoSet()); // initialize this.SeriesManager.Initialize(this); this.VideoManager.Initialize(this); this.FlagManager.Initialize(this); this.VideoRoleManager.Initialize(this); this.CoverManager.Initialize(this); this.Journal.Initialize(this); }