public DiskConverter(IOneNoteClient client, Page page, ISettings settings, DateTime date) { _client = client; _page = page; _settings = settings; _baseDir = Path.Combine(settings.RootDir, date.Year.ToString(), $"{date.Month,2:D2}", $"{date.Day,2:D2}"); if (!Directory.Exists(_baseDir)) { Directory.CreateDirectory(_baseDir); } }
static async Task Main(string[] args) { _settings = new ConfigurationBuilder <ISettings>() .UseEnvironmentVariables() .UseIniFile(@"c:\tmp\onenote.ini") .Build(); string authority = string.Format(AadInstance, _settings.TenantId); _context = new AuthenticationContext(authority, new FileCache()); _client = ClientFactory.CreateClient(GetToken); Log.Logger = new LoggerConfiguration() .WriteTo.ColoredConsole() .MinimumLevel.Debug() .CreateLogger(); var selector = new PageSelector(_client, _settings); Page page = await selector.SelectPageAsync(); Log.Information("type publishing date as yyyy/mm/dd or press enter to use current date"); string dateInput = Console.ReadLine(); DateTime date; if (string.IsNullOrEmpty(dateInput)) { date = DateTime.UtcNow; } else { string[] parts = dateInput.Split('/'); date = new DateTime(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), 0, 0, 0, DateTimeKind.Utc); } Log.Information("using {year}/{month}/{day}", date.Year, date.Month, date.Day); var converter = new DiskConverter(_client, page, _settings, date); string dir = await converter.ConvertAsync(); Process.Start("code", "\"" + dir + "\""); }
public PageSelector(IOneNoteClient client, ISettings settings) { _client = client; _settings = settings; }