private static async Task RegisterAndDownloadFile(FileHttpResponseHandler handler, string httpCacheDirectory, Uri baseUri, string fileName) { var uri = new Uri(baseUri, fileName); string path = Path.Combine(httpCacheDirectory, fileName); if (!File.Exists(path)) { using (var httpClient = new HttpClient()) { var data = await httpClient.GetByteArrayAsync(uri).ConfigureAwait(false); File.WriteAllBytes(path, data); } } handler.RegisterFile(uri, path); }
public UnicodeInfoBuilderTests() { string httpCacheDirectory = Path.GetFullPath(HttpCacheDirectory); if (!Directory.Exists(httpCacheDirectory)) { Directory.CreateDirectory(httpCacheDirectory); } var handler = new FileHttpResponseHandler(); string ucdArchiveName = UcdDataSourceName + ".zip"; string unihanArchiveName = UnihanDataSourceName + ".zip"; var ucdTask = RegisterAndDownloadFile(handler, httpCacheDirectory, UnicodeCharacterDataUri, ucdArchiveName); var unihanTask = RegisterAndDownloadFile(handler, httpCacheDirectory, UnicodeCharacterDataUri, unihanArchiveName); var emojiTasks = EmojiRequiredFiles.Select(f => RegisterAndDownloadFile(handler, httpCacheDirectory, EmojiDataUri, f)).ToArray(); _httpClient = new HttpClient(handler); if (Directory.Exists(UcdDataSourceName)) { Directory.Delete(UcdDataSourceName, true); } if (File.Exists(ucdArchiveName)) { File.Delete(ucdArchiveName); } if (Directory.Exists(UnihanDataSourceName)) { Directory.Delete(UnihanDataSourceName, true); } if (File.Exists(unihanArchiveName)) { File.Delete(unihanArchiveName); } Task.WaitAll(ucdTask, unihanTask, Task.WhenAll(emojiTasks)); }
public UnicodeInfoBuilderTests() { var httpCacheDirectory = Path.GetFullPath(HttpCacheDirectory); if (!Directory.Exists(httpCacheDirectory)) { Directory.CreateDirectory(httpCacheDirectory); } var handler = new FileHttpResponseHandler(); var ucdTask = RegisterAndDownloadFile(handler, httpCacheDirectory, Program.UnicodeCharacterDataUri, Program.UcdArchiveName); var unihanTask = RegisterAndDownloadFile(handler, httpCacheDirectory, Program.UnicodeCharacterDataUri, Program.UnihanArchiveName); var emojiTasks = Program.emojiRequiredFiles.Select(f => RegisterAndDownloadFile(handler, httpCacheDirectory, Program.EmojiDataUri, f)).ToArray(); Program.SetHttpMessageHandler(handler); if (Directory.Exists(Program.UcdDirectoryName)) { Directory.Delete(Program.UcdDirectoryName, true); } if (File.Exists(Program.UcdArchiveName)) { File.Delete(Program.UcdArchiveName); } if (Directory.Exists(Program.UnihanDirectoryName)) { Directory.Delete(Program.UnihanDirectoryName, true); } if (File.Exists(Program.UnihanArchiveName)) { File.Delete(Program.UnihanArchiveName); } Task.WaitAll(ucdTask, unihanTask, Task.WhenAll(emojiTasks)); }