private static async Task Run(RunParameters parameters) { var options = AppOptionsProvider.LoadOptions(); await UpdateTheme(options, parameters.Theme); if (File.Exists(parameters.Source)) { await Convert(new FileInfo(parameters.Source).DirectoryName !, parameters.Source, options, parameters); } else if (Directory.Exists(parameters.Source)) { foreach (var file in Directory.GetFiles(parameters.Source, "*.md", SearchOption.AllDirectories).OrderBy(x => x)) { try { await Convert(new DirectoryInfo(parameters.Source).FullName !, file, options, parameters); } catch (Exception ex) { Console.WriteLine($"Unable to convert {file}: {ex.Message}"); } } } else { Exit(-3, $"Source file or directory '{parameters.Source}' does not exist."); } }
private static async Task SetTheme(SetThemeParameters parameters) { var options = AppOptionsProvider.LoadOptions(); await UpdateTheme(options, parameters.Theme); Console.WriteLine($"Changed theme to \"{parameters.Theme}\". All conversions will use this theme from now on."); }
public void Setup() { autoMocker = new AutoMoqer(); appOptionsProvider = autoMocker.Create <AppOptionsProvider>(); mockWritableSettingsStore = new Mock <IWritableSettingsStore>(); var mockWritableSettingsStoreProvider = autoMocker.GetMock <IWritableSettingsStoreProvider>(); mockWritableSettingsStoreProvider.Setup( writableSettingsStoreProvider => writableSettingsStoreProvider.Provide() ).Returns(mockWritableSettingsStore.Object); }
private static async Task UpdateTheme(AppOptions options, string theme) { if (string.IsNullOrWhiteSpace(theme)) { return; } if (!options.Theme.Equals(theme, StringComparison.OrdinalIgnoreCase) || options.ThemeRefreshedUtc < DateTime.UtcNow.AddMinutes(-5)) { await ThemeFetcher.Fetch(theme); options.ThemeRefreshedUtc = DateTime.UtcNow; } options.Theme = theme; AppOptionsProvider.StoreOptions(options); }