Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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);
                });
            }
        }