private async Task Task_DownloadFileAsync(InvalidFileModel fileModel) { try { using (WebClient webClient = new WebClient()) { if (!useCustomNumbering) { await webClient.DownloadFileTaskAsync(new Uri(fileModel.Url), $@"{folderPathToSaveTo}\{TextHelper.GetImageNameFromLink(fileModel.Url)}"); } else { await webClient.DownloadFileTaskAsync(new Uri(fileModel.Url), $@"{folderPathToSaveTo}\{string.Format("{0:D3}", fileModel.Index)}{TextHelper.GetImageExtensionFromLink(fileModel.Url)}"); } //remove model from bag //concurrentListOfInvalidUrls.FirstOrDefault(x => x.Index == fileModel.Index). concurrentListOfUrls.TryRemove(fileModel.Index, out string value); } } catch (Exception) { //transform data Enum.TryParse(TextHelper.GetImageExtensionFromLink(fileModel.Url), out Enums.FileExtensions matchingEnum); concurrentListOfUrls[fileModel.Index] = TextHelper.ChangeFileExtension(fileModel.Url, (matchingEnum++).ToString()); } }
public void TestWriteException() { var errModel1 = new FileModel { utf8StrField = "", asciiStrField = "abcdefghi", }; using (var stream = File.OpenWrite(Path.GetTempFileName())) { var exception = Assert.ThrowsException <InvalidDataException>(() => { var writer = new FixedLengthFileWriter <FileModel>(stream); writer.Write(errModel1); }); Assert.IsTrue(exception.Message.Contains("asciiStrField")); Assert.IsTrue(exception.Message.Contains("exceeds")); } var errModel2 = new FileModel { asciiStrField = "abc", }; using (var stream = File.OpenWrite(Path.GetTempFileName())) { var exception = Assert.ThrowsException <InvalidDataException>(() => { var writer = new FixedLengthFileWriter <FileModel>(stream); writer.Write(errModel2); }); Assert.IsTrue(exception.Message.Contains("utf8StrField")); Assert.IsTrue(exception.Message.Contains("null")); } var errModel3 = new InvalidFileModel { intField = 1, }; using (var stream = File.OpenWrite(Path.GetTempFileName())) { var exception = Assert.ThrowsException <InvalidDataException>(() => { var writer = new FixedLengthFileWriter <InvalidFileModel>(stream); writer.Write(errModel3); }); Assert.IsTrue(exception.Message.Contains("intField")); Assert.IsTrue(exception.Message.Contains("exceeds")); } var errModel4 = new InvalidFileModel2 { strField = "", }; using (var stream = File.OpenWrite(Path.GetTempFileName())) { var exception = Assert.ThrowsException <InvalidDataException>(() => { var writer = new FixedLengthFileWriter <InvalidFileModel2>(stream); writer.Write(errModel4); }); Assert.IsTrue(exception.Message.Contains("strField")); Assert.IsTrue(exception.Message.Contains("Should specific length of string")); } var errModel5 = new InvalidFileModel3 { exceptionField = new Exception(), }; using (var stream = File.OpenWrite(Path.GetTempFileName())) { Assert.ThrowsException <NotSupportedException>(() => { var writer = new FixedLengthFileWriter <InvalidFileModel3>(stream); writer.Write(errModel5); }); } }