protected override void Configure() { base.Configure(); _Contracts = new AppContracts(); _SettingsPersistor = new JsonPersister <AppSettings>(Path.Combine(_Contracts.SettingsLocation, _Contracts.SettingsFilename)); _Settings = _SettingsPersistor.Instance; Container.Register <AppContracts>(_Contracts); Container.Register <AppSettings>(_Settings); Container.Register <Core.ILog>(new ProductionLogger()); Container.Register <AutorunService>(new AutorunService(Container.Resolve <Core.ILog>(), _Settings, _Contracts)); Container.Register <IWindowManager>(new AppWindowManager(_Settings)); Container.Register <IBroadcastService>(new BroadcastService(_Settings, _Contracts, Container.Resolve <Core.ILog>())); Container.Register <SpotifyLocalApi>(new SpotifyLocalApi(Container.Resolve <Core.ILog>(), _Contracts, _Settings)); Container.Register <ISpotifyController>(new SpotifyController(Container.Resolve <Core.ILog>(), Container.Resolve <SpotifyLocalApi>())); Container.Register <ICoverService>(new CoverService(_Contracts, Container.Resolve <Core.ILog>(), Container.Resolve <SpotifyLocalApi>())); Container.Register <IUpdateService>(new UpdateService(Container.Resolve <Core.ILog>())); Container.Register <IUsageTrackerService>(ApplicationDeployment.IsNetworkDeployed ? new UsageTrackerService(_Settings, Container.Resolve <Core.ILog>(), _Contracts) : new LocalUsageTrackerService(_Settings, Container.Resolve <Core.ILog>(), _Contracts)); }
static void Main() { AppContracts contracts = new AppContracts(); bool createdNew; try { instanceMutex = new Mutex(true, @"Local\" + Assembly.GetExecutingAssembly().GetType().GUID, out createdNew); if (!createdNew) { instanceMutex = null; return; } var clickOnceHelper = new ClickOnceHelper(contracts.PublisherName, contracts.ProductName); var form = new UninstallForm(contracts); Application.EnableVisualStyles(); Application.Run(form); if (form.Uninstall) { clickOnceHelper.Uninstall(); } } finally { ReleaseMutex(); } }
public ShellViewModel(IWindowManager windowManager, ISpotifyController spotifyController, ICoverService coverService, AppSettings settings, ILog logger, Container kernel, ClipboardManager clipboardManager, AppContracts appContracts) { _WindowManager = windowManager; _SpotifyController = spotifyController; _CoverService = coverService; _Settings = settings; _Logger = logger; _kernel = kernel; _clipboardManager = clipboardManager; _appContracts = appContracts; ApplicationSize = _Settings.ApplicationSize; CoverImage = NoCoverUri; #pragma warning disable RECS0165 // Asynchronous methods should return a Task instead of void _SpotifyController.AttachTrackChangedHandler(async e => await UpdateView().ConfigureAwait(false)); _SpotifyController.SpotifyOpened.Subscribe(async o => await SpotifyOpened().ConfigureAwait(false)); _SpotifyController.SpotifyExited.Subscribe(async o => await SpotifyExited().ConfigureAwait(false)); _SpotifyController.AttachTrackStatusChangedHandler(SpotifyControllerOnTrackStatusChanged); #pragma warning restore RECS0165 // Asynchronous methods should return a Task instead of void //TODO more app sizes ApplicationSize = ApplicationSize.Medium; SystemEvents.SessionSwitch += SystemEventsOnSessionSwitch; }
public BroadcastService(AppSettings settings, AppContracts contracts, ILog log) { _Settings = settings; _Contracts = contracts; _Log = log; _LastTimeChecked = DateTime.MinValue; }
public UpdateReadyViewModel(IUpdateService updateController, AppContracts contracts, Version newVersion, List <Release> changelog) { _UpdateController = updateController; _Contracts = contracts; NewVersion = newVersion.ToString(); DisplayName = string.Format("Update ready - {0}", _Contracts.ApplicationName); Changelog = changelog.Where(r => r.ReleaseVersion > contracts.ApplicationVersion).OrderByDescending(r => r.ReleaseVersion).ToList(); }
public SettingsViewModel(AppSettings settings, AppContracts contracts, ICoverService coverService, Core.ILog logger) { _Settings = settings; _Contracts = contracts; _CoverService = coverService; _Logger = logger; DisplayName = string.Format("Settings - {0}", _Contracts.ApplicationName); CacheSize = Helper.MakeNiceSize(_CoverService.CacheSize()); }
/// <summary>Initializes a new SpotifyAPI object which can be used to recieve</summary> public SpotifyLocalApi(ILog log, AppContracts contracts) { //emulate the embed code [NEEDED] _client = new HttpClient(); _client.DefaultRequestHeaders.Add("Origin", "https://open.spotify.com"); _client.DefaultRequestHeaders.Referrer = new Uri("https://open.spotify.com/?uri=spotify:track:5Zp4SWOpbuOdnsxLqwgutt"); _client.DefaultRequestHeaders.Add("User-Agent", "MiniPie"); _log = log; _baseUri = new Uri(contracts.SpotifyLocalHost); }
private void ProcessSquirrelStartup() { #if !DEBUG using (var mgr = new Squirrel.UpdateManager(string.Empty)) { // Note, in most of these scenarios, the app exits after this method // completes! SquirrelAwareApp.HandleEvents( onInitialInstall: v => { mgr.CreateShortcutForThisExe(); UriProtocolManager.RegisterUrlProtocol(); Environment.Exit(0); }, onAppUpdate: v => { mgr.CreateShortcutForThisExe(); Environment.Exit(0); }, onAppUninstall: v => { mgr.RemoveShortcutForThisExe(); UriProtocolManager.UnregisterUrlProtocol(); AppContracts contracts = new AppContracts(); var settingsPersistor = new JsonPersister <AppSettings>(Path.Combine(contracts.SettingsLocation, contracts.SettingsFilename)); string dir = Path.Combine(string.IsNullOrEmpty(settingsPersistor.Instance.CacheFolder) ? contracts.SettingsLocation : settingsPersistor.Instance.CacheFolder, CoverService.CacheDirName); var log = new ProductionLogger(); log.Fatal("Uninstalling Minipie. Removing CoverCache from ->" + dir); try { if (Directory.Exists(dir)) { Directory.Delete(dir, true); } } catch (Exception e) { log.FatalException(e.Message, e); } Environment.Exit(0); }, onFirstRun: () => { }); } #endif }
public AboutViewModel(AppSettings settings, AppContracts contracts) { _Settings = settings; _Contracts = contracts; DisplayName = string.Format("About - {0}", _Contracts.ApplicationName); UsedComponents = new List <ComponentData>(new [] { new ComponentData("http://caliburnmicro.codeplex.com/", "MIT License", "Caliburn.Micro"), new ComponentData("http://nlog-project.org/", "MIT License", "NLog"), new ComponentData("https://github.com/grumpydev/TinyIoC", "Ms-Pl", "TinyIoC"), new ComponentData("https://github.com/dbuksbaum/Caliburn.Micro.TinyIOC", "MIT License", "Caliburn.Micro.TinyIOC"), new ComponentData("http://json.codeplex.com/", "MIT License", "Newtonsoft Json.Net"), new ComponentData("http://jariz.nl", "Apache 2.0 License", "Spotify local API") }); }
public SettingsViewModel(AppContracts contracts, ICoverService coverService, ILog logger, HotKeyViewModel hotKeyViewModel, ISpotifyController spotifyController, AutorunService autorunService, JsonPersister <AppSettings> persister) { _settings = persister.Instance; _contracts = contracts; _coverService = coverService; _logger = logger; _spotifyController = spotifyController; _autorunService = autorunService; _persister = persister; HotKeyViewModel = hotKeyViewModel; DisplayName = $"Settings - {_contracts.ApplicationName}"; CacheSize = Helper.MakeNiceSize(_coverService.CacheSize()); }
public AboutViewModel(AppContracts contracts) { _Contracts = contracts; DisplayName = string.Format("About - {0}", _Contracts.ApplicationName); UsedComponents = new List <ComponentData>(new [] { new ComponentData("http://caliburnmicro.codeplex.com/", "MIT License", "Caliburn.Micro"), new ComponentData("http://nlog-project.org/", "MIT License", "NLog"), new ComponentData("http://json.codeplex.com/", "MIT License", "Newtonsoft Json.Net"), new ComponentData("http://jariz.nl", "Apache 2.0 License", "Spotify local API"), new ComponentData("http://www.codeproject.com/Articles/35159/WPF-Localization-Using-RESX-Files", "CPOL", "Resx Extention"), new ComponentData("https://github.com/Fody/Fody", "MIT", "Fody"), new ComponentData("http://www.codeproject.com/Articles/36468/WPF-NotifyIcon", "CPOL", "Hardcodet WPF NotifyIcon"), new ComponentData("https://github.com/Squirrel/Squirrel.Windows", "Github license", "Squirrel.Windows"), }); }
public UninstallForm(AppContracts contracts) { InitializeComponent(); InfoLabel.Text = Properties.Resources.RemoveMessage; PreserveCache.Text = Properties.Resources.KeepCache; PreserveSettings.Text = Properties.Resources.KeepSettings; Continue.Text = Properties.Resources.Continue; Cancel.Text = Properties.Resources.Cancel; _settingsLocation = contracts.SettingsLocation; var _settingsPersistor = new JsonPersister <AppSettings>(_settingsLocation); settings = _settingsPersistor.Instance; }
private const string CoverSize = "300"; //valid sizes: 300, 640 /// <summary>Initializes a new SpotifyAPI object which can be used to recieve</summary> public SpotifyLocalApi(ILog log, AppContracts contracts, AppSettings settings) { //emulate the embed code [NEEDED] _Client = new WebClient(); _Client.Headers.Add("Origin", "https://embed.spotify.com"); _Client.Headers.Add("Referer", "https://embed.spotify.com/?uri=spotify:track:5Zp4SWOpbuOdnsxLqwgutt"); _Client.Encoding = Encoding.UTF8; if (_Client.Proxy != null) _Client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; _Log = log; _Settings = settings; _Contracts = contracts; RenewToken(); }
protected override void Configure() { _Contracts = new AppContracts(); _kernel.RegisterSingleton(this); _SettingsPersistor = new JsonPersister <AppSettings>(Path.Combine(_Contracts.SettingsLocation, _Contracts.SettingsFilename)); _kernel.RegisterSingleton(_SettingsPersistor); _kernel.RegisterSingleton(_Contracts); _Settings = _SettingsPersistor.Instance; _kernel.RegisterSingleton(_Settings); _log = new ProductionLogger(); _kernel.RegisterSingleton(_log); _kernel.RegisterSingleton <UpdateManager>(); _kernel.RegisterSingleton(new AutorunService(_log, _Settings, _Contracts)); _kernel.RegisterSingleton <IWindowManager>(new AppWindowManager(_Settings)); _kernel.RegisterSingleton <ClipboardManager>(); _kernel.Register <IEventAggregator, EventAggregator>(); _kernel.RegisterSingleton <ISpotifyLocalApi, SpotifyLocalApi>(); _kernel.RegisterSingleton <ISpotifyWebApi, SpotifyWebApi>(); _kernel.RegisterSingleton <ISpotifyNativeApi, SpotifyNativeApi>(); _kernel.RegisterSingleton <ISpotifyController, SpotifyController>(); //new CoverService( _kernel.RegisterSingleton <ICoverService>(() => new CoverService(string.IsNullOrEmpty(_Settings.CacheFolder) ? _Contracts.SettingsLocation : _Settings.CacheFolder, _log, _kernel.GetInstance <ISpotifyWebApi>())); _kernel.RegisterSingleton <KeyManager>(); var classes = Assembly.GetExecutingAssembly() .GetTypes() .Where( type => type.IsPublic && ( type.Namespace == typeof(ShellViewModel).Namespace || type.Namespace == typeof(ShellView).Namespace)) .ToList(); foreach (var @class in classes) { _kernel.Register(@class); } base.Configure(); }
private const string CoverSize = "300"; //valid sizes: 300, 640 /// <summary>Initializes a new SpotifyAPI object which can be used to recieve</summary> public SpotifyLocalApi(ILog log, AppContracts contracts, AppSettings settings) { //emulate the embed code [NEEDED] _Client = new WebClient(); _Client.Headers.Add("Origin", "https://embed.spotify.com"); _Client.Headers.Add("Referer", "https://embed.spotify.com/?uri=spotify:track:5Zp4SWOpbuOdnsxLqwgutt"); _Client.Encoding = Encoding.UTF8; if (_Client.Proxy != null) { _Client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; } _Log = log; _Settings = settings; _Contracts = contracts; RenewToken(); }
private const string CoverSize = "300"; //valid sizes: 300, 640 /// <summary>Initializes a new SpotifyAPI object which can be used to recieve</summary> public SpotifyLocalApi(ILog log, AppContracts contracts, AppSettings settings) { //emulate the embed code [NEEDED] _Client = new WebClient(); _Client.Headers.Add("Origin", "https://embed.spotify.com"); _Client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"; _Client.Headers.Add("Referer", "https://embed.spotify.com/?uri=spotify:track:5Zp4SWOpbuOdnsxLqwgutt"); _Client.Encoding = Encoding.UTF8; if (_Client.Proxy != null) { _Client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; } _Log = log; _Settings = settings; _Contracts = contracts; RenewToken(); }
public AutorunService(ILog logger, AppSettings settings, AppContracts contracts) { _Logger = logger; _Settings = settings; _Contracts = contracts; }
public NoSpotifyViewModel(AppContracts contracts) { _Contracts = contracts; DisplayName = string.Format("No Spotify installed - {0}", _Contracts.ApplicationName); }