/// <summary> /// Base constructor /// </summary> private PinballXSystem(IDependencyResolver resolver) { _settingsManager = resolver.GetService <ISettingsManager>(); _marshallManager = resolver.GetService <IMarshallManager>(); _threadManager = resolver.GetService <IThreadManager>(); _watcher = resolver.GetService <IFileSystemWatcher>(); _logger = resolver.GetService <ILogger>(); _file = resolver.GetService <IFile>(); _dir = resolver.GetService <IDirectory>(); }
public PinballXManager(IFileSystemWatcher fileSystemWatcher, ISettingsManager settingsManager, IMarshallManager marshallManager, IThreadManager threadManager, IFile file, IDirectory dir, ILogger logger) { _watcher = fileSystemWatcher; _settingsManager = settingsManager; _marshallManager = marshallManager; _threadManager = threadManager; _file = file; _dir = dir; _logger = logger; }
/// <summary> /// Constructor when instantiating self-saving object /// </summary> /// <param name="path">Path to save</param> /// <param name="marshallManager">Marshaller dependency</param> public SystemMapping(string path, IMarshallManager marshallManager) { Mappings = new ReactiveList <Mapping> { ChangeTrackingEnabled = true }; Observable.Merge( Mappings.ItemChanged.Select(x => Unit.Default), Mappings.ItemsAdded.Select(x => Unit.Default), Mappings.ItemsRemoved.Select(x => Unit.Default) ).Sample(TimeSpan.FromSeconds(1)).Subscribe(x => Save(path, marshallManager)); // if mapping goes stale, remove it. Mappings.ItemChanged.Subscribe(e => { var mapping = e.Sender; if (mapping.IsStale) { Mappings.Remove(mapping); } }); }
public MenuManager(IFileSystemWatcher fileSystemWatcher, ISettingsManager settingsManager, IMarshallManager marshallManager, IThreadManager threadManager, IFile file, IDirectory dir, ILogger logger) { _watcher = fileSystemWatcher; _settingsManager = settingsManager; _marshallManager = marshallManager; _threadManager = threadManager; _file = file; _dir = dir; _logger = logger; }
private void Save(string path, IMarshallManager marshallManager) { marshallManager.MarshallMappings(this, path); }