Example #1
0
        public void SingleLineReader()
        {
            var readerLayer = new BatchReader()
            {
                FileName            = MNIST,
                SparseFormat        = true,
                NormalizationFactor = 1.0 / 256.0,
                Scale    = 16.0,
                MaxSlots = 1
            };

            var singleLineReader = new LLSingleLineReader()
            {
                FileName            = MNIST,
                SparseFormat        = true,
                NormalizationFactor = 1.0 / 256.0,
                Scale = 16.0,
            };
            var read = readerLayer.GetNext().Decrypt(null);
            var pad  = singleLineReader.GetNext().Decrypt(null);

            Assert.AreEqual(28 * 28, pad.RowCount);
            for (int i = 0; i < 28; i++)
            {
                for (int j = 0; j < 28; j++)
                {
                    Assert.AreEqual(read[0, i * 28 + j], pad[i * 28 + j, 0]);
                }
            }
        }
        public void ReadBatch_CollectionsInitialized()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.NotNull(batch.ReferenceIds);
            Assert.NotNull(batch.Transactions);
        }
        public async Task ReadBatchAsync_CollectionsInitialized()
        {
            var reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch = await reader.ReadBatchAsync(@"C:\Opex\test1.oxi");

            Assert.NotNull(batch.ReferenceIds);
            Assert.NotNull(batch.Transactions);
        }
        public void ReadBatch_CustomDatasPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].CustomDatas.Count);
            Assert.Equal("Hello from ScanLink", batch.Transactions[0].Groups[0].Pages[0].CustomDatas[0].Entry);
            Assert.Equal("Hello from a plugin", batch.Transactions[0].Groups[0].Pages[0].CustomDatas[1].Entry);
        }
        public void ReadBatch_EndInfoPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(new DateTime(2019, 3, 22, 23, 32, 45), batch.EndInfo.EndTime);
            Assert.Equal(4, batch.EndInfo.NumPages);
            Assert.Equal(2, batch.EndInfo.NumGroups);
            Assert.Equal(2, batch.EndInfo.NumTransactions);
            Assert.False(batch.EndInfo.IsModified);
        }
        public void BatchReader_EmptyPath_Throws()
        {
            var reader = new BatchReader();

            Batch Func()
            {
                return(reader.ReadBatch(""));
            }

            Assert.Throws <ArgumentException>(Func);
        }
        public async Task BatchReader_NullPath_Throws()
        {
            var reader = new BatchReader();

            Task<Batch> FuncAsync()
            {
                return reader.ReadBatchAsync(null);
            }

            await Assert.ThrowsAsync<ArgumentNullException>(FuncAsync);
        }
        public async Task BatchReader_WrongFileExtension_Throws()
        {
            var reader = new BatchReader();

            Task<Batch> FuncAsync()
            {
                return reader.ReadBatchAsync(@"C:\Opex\test.xml");
            }

            await Assert.ThrowsAsync<InvalidOperationException>(FuncAsync);
        }
        public void BatchReader_NullPath_Throws()
        {
            var reader = new BatchReader();

            Batch Func()
            {
                return(reader.ReadBatch(null));
            }

            Assert.Throws <ArgumentNullException>(Func);
        }
Example #10
0
        public void BatchReader_WrongFileExtension_Throws()
        {
            var reader = new BatchReader();

            Batch Func()
            {
                return(reader.ReadBatch(@"C:\Opex\test.xml"));
            }

            Assert.Throws <InvalidOperationException>(Func);
        }
        public async Task ReadBatchAsync_UnexpectedAttributeAndElementIgnored()
        {
            var batchFileContents =
                @"<Batch FormatVersion=""03.14"" BaseMachine=""MODEL_51"" ScanDevice=""AS3600i"" SoftwareVersion=""02.23.00.05"" TransportId=""MyTransport"" BatchIdentifier=""thisisbatch45"" JobType=""MULTI_WITH_PAGE"" OperatingMode=""MODIFIED"" JobName=""Lockbox 25"" OperatorName=""Lee Dumond"" StartTime=""2019-03-22 23:24:07"" ReceiveDate=""2019-03-21"" ProcessDate=""2019-03-22"" ImageFilePath=""X:\Images\OPEX\somebatchid"" PluginMessage=""XYZ Plug-in"" DeveloperReserved=""1234-56a"" UnexpectedAttribute=""Hello"">
                  <UnexpectedElement></UnexpectedElement>
            </Batch>";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\test.oxi", new MockFileData(batchFileContents));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);
            await reader.ReadBatchAsync(@"C:\Opex\test1.oxi");
        }
Example #12
0
        public void ReadBatch_TagsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Tags.Count);

            Assert.Equal("MFD Override", batch.Transactions[0].Groups[0].Pages[0].Tags[0].Source);
            Assert.Equal("Medical Record", batch.Transactions[0].Groups[0].Pages[0].Tags[0].Value);

            Assert.Equal("External Camera", batch.Transactions[0].Groups[0].Pages[0].Tags[1].Source);
            Assert.Equal("Invoice", batch.Transactions[0].Groups[0].Pages[0].Tags[1].Value);
        }
Example #13
0
        public void ReadBatch_TransactionsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions.Count);

            Assert.Equal(3141, batch.Transactions[0].TransactionId);
            Assert.NotNull(batch.Transactions[0].Groups);

            Assert.Equal(3152, batch.Transactions[1].TransactionId);
            Assert.NotNull(batch.Transactions[1].Groups);
        }
Example #14
0
        public void ReadBatch_EncodingsAreDecoded()
        {
            var batchFileContents =
                @"<Batch FormatVersion=""03.14"" BaseMachine=""MODEL_51"" ScanDevice=""AS3600i"" SoftwareVersion=""02.23.00.05"" TransportId=""MyTransport"" BatchIdentifier=""thisisbatch45"" JobType=""MULTI_WITH_PAGE""
        OperatingMode=""MODIFIED"" JobName=""Lockbox 25"" OperatorName=""Lee Dumond"" StartTime=""2019-03-22 23:24:07"" ReceiveDate=""2019-03-21"" ProcessDate=""2019-03-22"" ImageFilePath=""X:\Images\OPEX\somebatchid""
        PluginMessage=""XYZ Plug-in"" DeveloperReserved=""1&amp;&gt;&lt;&quot;&apos;&#xE9;a""><EndInfo EndTime=""2019-03-22 23:32:45"" NumPages=""4"" NumGroups=""2"" NumTransactions=""2"" IsModified=""FALSE"" /></Batch>";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\test.oxi", new MockFileData(batchFileContents));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);

            Batch batch = reader.ReadBatch(@"C:\Opex\test.oxi");

            Assert.Equal(@"1&><""'éa", batch.DeveloperReserved);
        }
Example #15
0
        public void ReadBatch_BatchReferenceIdsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.ReferenceIds.Count);

            Assert.Equal(1, batch.ReferenceIds[0].Index);
            Assert.Equal("High Priority", batch.ReferenceIds[0].Response);
            Assert.Equal("Batch 1234", batch.ReferenceIds[0].Name);

            Assert.Equal(2, batch.ReferenceIds[1].Index);
            Assert.Equal("Normal Priority", batch.ReferenceIds[1].Response);
            Assert.Equal("Batch 5678", batch.ReferenceIds[1].Name);
        }
Example #16
0
        public void ReadBatch_InvalidSchema_ThrowOnError()
        {
            var badSchema = @"<This is=""an invalid schema"" />";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\badSchema.xsd", new MockFileData(badSchema));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);

            void Action()
            {
                reader.ReadBatch(@"C:\Opex\test1.oxi", @"C:\Opex\badSchema.xsd", true);
            }

            Assert.ThrowsAny <XmlSchemaException>(Action);
        }
Example #17
0
        public void ReadBatch_PageReferenceIdsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].ReferenceIds.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[0].Index);
            Assert.Equal("High Priority", batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[0].Response);
            Assert.Equal("Priority", batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[0].Name);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[1].Index);
            Assert.Equal("Mint Chocolate Chip", batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[1].Response);
            Assert.Equal("Ice Cream", batch.Transactions[0].Groups[0].Pages[0].ReferenceIds[1].Name);
        }
Example #18
0
        public void ReadBatch_InvalidSchema()
        {
            var badSchema = @"<This is=""an invalid schema"" />";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\badSchema.xsd", new MockFileData(badSchema));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);

            Batch batch = reader.ReadBatch(@"C:\Opex\test1.oxi", @"C:\Opex\badSchema.xsd");

            Assert.Single(reader.ValidationErrors);
            Assert.Equal(
                "The root element of a W3C XML Schema should be <schema> and its namespace should be 'http://www.w3.org/2001/XMLSchema'.",
                reader.ValidationErrors[0].Message);
            Assert.NotNull(batch);
        }
Example #19
0
        public void ReadBatch_BarcodesPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Barcodes.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].Barcodes[0].Index);
            Assert.Equal("Code 39", batch.Transactions[0].Groups[0].Pages[0].Barcodes[0].Type);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].Barcodes[0].Side);
            Assert.Equal("08057423", batch.Transactions[0].Groups[0].Pages[0].Barcodes[0].Value);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Barcodes[1].Index);
            Assert.Equal("EAN-8", batch.Transactions[0].Groups[0].Pages[0].Barcodes[1].Type);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].Barcodes[1].Side);
            Assert.Equal("123 Main Street", batch.Transactions[0].Groups[0].Pages[0].Barcodes[1].Value);
        }
Example #20
0
        public void ReadBatch_AuditTrailsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].AuditTrails.Count);

            Assert.Equal(AuditTrailType.Printed, batch.Transactions[0].Groups[0].Pages[0].AuditTrails[0].Type);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].AuditTrails[0].Side);
            Assert.True(batch.Transactions[0].Groups[0].Pages[0].AuditTrails[0].Apply);
            Assert.Equal("Received", batch.Transactions[0].Groups[0].Pages[0].AuditTrails[0].Text);

            Assert.Equal(AuditTrailType.Electronic, batch.Transactions[0].Groups[0].Pages[0].AuditTrails[1].Type);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].AuditTrails[1].Side);
            Assert.False(batch.Transactions[0].Groups[0].Pages[0].AuditTrails[1].Apply);
            Assert.Equal("CCCIS Inc.", batch.Transactions[0].Groups[0].Pages[0].AuditTrails[1].Text);
        }
Example #21
0
        public void ReadBatch_OcrsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Ocrs.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].Ocrs[0].Index);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].Ocrs[0].Side);
            Assert.Equal("This is the !alue of first read", batch.Transactions[0].Groups[0].Pages[0].Ocrs[0].Value);
            Assert.Equal("OCR 1", batch.Transactions[0].Groups[0].Pages[0].Ocrs[0].Name);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Ocrs[1].Index);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].Ocrs[1].Side);
            Assert.Equal(string.Empty, batch.Transactions[0].Groups[0].Pages[0].Ocrs[1].Value);
            Assert.Equal("OCR 2", batch.Transactions[0].Groups[0].Pages[0].Ocrs[1].Name);
        }
Example #22
0
        public void ReadBatch_MarkDetectsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].MarkDetects.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].MarkDetects[0].Index);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].MarkDetects[0].Side);
            Assert.True(batch.Transactions[0].Groups[0].Pages[0].MarkDetects[0].Result);
            Assert.Equal("MARK 1", batch.Transactions[0].Groups[0].Pages[0].MarkDetects[0].Name);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].MarkDetects[1].Index);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].MarkDetects[1].Side);
            Assert.False(batch.Transactions[0].Groups[0].Pages[0].MarkDetects[1].Result);
            Assert.Equal("MARK 2", batch.Transactions[0].Groups[0].Pages[0].MarkDetects[1].Name);
        }
Example #23
0
        public void ReadBatch_GroupsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups.Count);

            Assert.Equal(98, batch.Transactions[0].Groups[0].GroupId);
            Assert.Equal(108, batch.Transactions[0].Groups[1].GroupId);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages);

            Assert.Single(batch.Transactions[1].Groups);

            Assert.Equal(125, batch.Transactions[1].Groups[0].GroupId);
            Assert.NotNull(batch.Transactions[1].Groups[0].Pages);
        }
Example #24
0
        public void ReadBatch_UnexpectedAttributeAndElement_ThrowOnError()
        {
            var batchFileContents =
                @"<Batch FormatVersion=""03.14"" BaseMachine=""MODEL_51"" ScanDevice=""AS3600i"" SoftwareVersion=""02.23.00.05"" TransportId=""MyTransport"" BatchIdentifier=""thisisbatch45"" JobType=""MULTI_WITH_PAGE"" OperatingMode=""MODIFIED"" JobName=""Lockbox 25"" OperatorName=""Lee Dumond"" StartTime=""2019-03-22 23:24:07"" ReceiveDate=""2019-03-21"" ProcessDate=""2019-03-22"" ImageFilePath=""X:\Images\OPEX\somebatchid"" PluginMessage=""XYZ Plug-in"" DeveloperReserved=""1234-56a"" UnexpectedAttribute=""Hello"">
                  <UnexpectedElement></UnexpectedElement>
            </Batch>";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\test.oxi", new MockFileData(batchFileContents));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);

            void Action()
            {
                reader.ReadBatch(@"C:\Opex\test.oxi", @"C:\Opex\schema.xsd", true);
            }

            Assert.ThrowsAny <XmlSchemaException>(Action);
        }
Example #25
0
        public void ReadBatch_UnexpectedAttributeAndElement()
        {
            var batchFileContents =
                @"<Batch FormatVersion=""03.14"" BaseMachine=""MODEL_51"" ScanDevice=""AS3600i"" SoftwareVersion=""02.23.00.05"" TransportId=""MyTransport"" BatchIdentifier=""thisisbatch45"" JobType=""MULTI_WITH_PAGE"" OperatingMode=""MODIFIED"" JobName=""Lockbox 25"" OperatorName=""Lee Dumond"" StartTime=""2019-03-22 23:24:07"" ReceiveDate=""2019-03-21"" ProcessDate=""2019-03-22"" ImageFilePath=""X:\Images\OPEX\somebatchid"" PluginMessage=""XYZ Plug-in"" DeveloperReserved=""1234-56a"" UnexpectedAttribute=""Hello"">
                  <UnexpectedElement></UnexpectedElement>
            </Batch>";

            _fileSystemFixture.FileSystem.AddFile(@"C:\Opex\test.oxi", new MockFileData(batchFileContents));

            var reader = new BatchReader(_fileSystemFixture.FileSystem);

            reader.ReadBatch(@"C:\Opex\test.oxi", @"C:\Opex\schema.xsd");

            Assert.Equal(2, reader.ValidationErrors.Count);
            Assert.Equal("The 'UnexpectedAttribute' attribute is not declared.", reader.ValidationErrors[0].Message);
            Assert.StartsWith("The element 'Batch' has invalid child element 'UnexpectedElement'",
                              reader.ValidationErrors[1].Message);
        }
Example #26
0
        public void ReadBatch_MicrsPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Micrs.Count);

            Assert.Equal(MicrStatus.Good, batch.Transactions[0].Groups[0].Pages[0].Micrs[0].Status);
            Assert.Equal(RtStatus.Good, batch.Transactions[0].Groups[0].Pages[0].Micrs[0].RtStatus);
            Assert.Equal(CheckType.US, batch.Transactions[0].Groups[0].Pages[0].Micrs[0].CheckType);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].Micrs[0].Side);
            Assert.Equal("d031201360d8659741c0401", batch.Transactions[0].Groups[0].Pages[0].Micrs[0].Value);

            Assert.Equal(MicrStatus.NoMicr, batch.Transactions[0].Groups[0].Pages[0].Micrs[1].Status);
            Assert.Equal(RtStatus.NotFound, batch.Transactions[0].Groups[0].Pages[0].Micrs[1].RtStatus);
            Assert.Equal(CheckType.Unknown, batch.Transactions[0].Groups[0].Pages[0].Micrs[1].CheckType);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].Micrs[1].Side);
            Assert.Equal("", batch.Transactions[0].Groups[0].Pages[0].Micrs[1].Value);
        }
Example #27
0
        public void ReadBatch_ImagesPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Images.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].Images[0].Index);
            Assert.Equal(RescanStatus.Rescan, batch.Transactions[0].Groups[0].Pages[0].Images[0].RescanStatus);
            Assert.Equal(ScantimeFinalBlankAreaDecision.NotBlank,
                         batch.Transactions[0].Groups[0].Pages[0].Images[0].ScantimeFinalBlankAreaDecision);
            Assert.Equal(Side.Front, batch.Transactions[0].Groups[0].Pages[0].Images[0].Side);
            Assert.Equal(ImageType.Full, batch.Transactions[0].Groups[0].Pages[0].Images[0].Type);
            Assert.Equal(ImageDepth.Grayscale, batch.Transactions[0].Groups[0].Pages[0].Images[0].Depth);
            Assert.Equal(ImageFormat.TIFF, batch.Transactions[0].Groups[0].Pages[0].Images[0].Format);
            Assert.Equal("12345.tif", batch.Transactions[0].Groups[0].Pages[0].Images[0].Filename);
            Assert.Equal(1234567, batch.Transactions[0].Groups[0].Pages[0].Images[0].Filesize);
            Assert.Equal(1700, batch.Transactions[0].Groups[0].Pages[0].Images[0].Length);
            Assert.Equal(300, batch.Transactions[0].Groups[0].Pages[0].Images[0].Height);
            Assert.Equal(400, batch.Transactions[0].Groups[0].Pages[0].Images[0].OffsetLength);
            Assert.Equal(60, batch.Transactions[0].Groups[0].Pages[0].Images[0].OffsetHeight);
            Assert.Equal(ImageResolution.High, batch.Transactions[0].Groups[0].Pages[0].Images[0].ResolutionLength);
            Assert.Equal(ImageResolution.MediumHigh,
                         batch.Transactions[0].Groups[0].Pages[0].Images[0].ResolutionHeight);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[0].Images[1].Index);
            Assert.Equal(RescanStatus.NotRescan, batch.Transactions[0].Groups[0].Pages[0].Images[1].RescanStatus);
            Assert.Equal(ScantimeFinalBlankAreaDecision.Undetermined,
                         batch.Transactions[0].Groups[0].Pages[0].Images[1].ScantimeFinalBlankAreaDecision);
            Assert.Equal(Side.Back, batch.Transactions[0].Groups[0].Pages[0].Images[1].Side);
            Assert.Equal(ImageType.Snippet, batch.Transactions[0].Groups[0].Pages[0].Images[1].Type);
            Assert.Equal(ImageDepth.Color, batch.Transactions[0].Groups[0].Pages[0].Images[1].Depth);
            Assert.Equal(ImageFormat.JPEG, batch.Transactions[0].Groups[0].Pages[0].Images[1].Format);
            Assert.Equal("67890.jpg", batch.Transactions[0].Groups[0].Pages[0].Images[1].Filename);
            Assert.Equal(23456789, batch.Transactions[0].Groups[0].Pages[0].Images[1].Filesize);
            Assert.Equal(200, batch.Transactions[0].Groups[0].Pages[0].Images[1].Length);
            Assert.Equal(1800, batch.Transactions[0].Groups[0].Pages[0].Images[1].Height);
            Assert.Equal(0, batch.Transactions[0].Groups[0].Pages[0].Images[1].OffsetLength);
            Assert.Equal(240, batch.Transactions[0].Groups[0].Pages[0].Images[1].OffsetHeight);
            Assert.Equal(ImageResolution.Medium, batch.Transactions[0].Groups[0].Pages[0].Images[1].ResolutionLength);
            Assert.Equal(ImageResolution.MediumLow,
                         batch.Transactions[0].Groups[0].Pages[0].Images[1].ResolutionHeight);
        }
Example #28
0
        public void ReadBatch_BatchPropertiesPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal("MODEL_51", batch.BaseMachine);
            Assert.Equal("03.14", batch.FormatVersion);
            Assert.Equal("thisisbatch45", batch.BatchIdentifier);
            Assert.Equal("1234-56a", batch.DeveloperReserved);
            Assert.Equal(@"X:\Images\OPEX\somebatchid", batch.ImageFilePath);
            Assert.Equal("Lockbox 25", batch.JobName);
            Assert.Equal(JobType.MultiWithPage, batch.JobType);
            Assert.Equal("Lee Dumond", batch.OperatorName);
            Assert.Equal(new DateTime(2019, 3, 22, 23, 24, 07), batch.StartTime);
            Assert.Equal(OperatingMode.Modified, batch.OperatingMode);
            Assert.Equal("XYZ Plug-in", batch.PluginMessage);
            Assert.Equal(new DateTime(2019, 3, 22), batch.ProcessDate);
            Assert.Equal(new DateTime(2019, 3, 21), batch.ReceiveDate);
            Assert.Equal("AS3600i", batch.ScanDevice);
            Assert.Equal("02.23.00.05", batch.SoftwareVersion);
            Assert.Equal("MyTransport", batch.TransportId);
        }
Example #29
0
        private static void Main(string[] args)
        {
            var reader = new BatchReader();

            Batch batch = reader.ReadBatch("sample.oxi", "oxi1_60.xsd");

            Console.WriteLine("Batch:");
            Console.WriteLine($"\tFormat Version: {batch.FormatVersion}");
            Console.WriteLine($"\tBase Machine: {batch.BaseMachine}");
            Console.WriteLine($"\tScan Device: {batch.ScanDevice}");
            Console.WriteLine($"\tSoftware Version: {batch.SoftwareVersion}");
            Console.WriteLine($"\tTransport ID: {batch.TransportId}");
            Console.WriteLine($"\tBatch Identifier: {batch.BatchIdentifier}");
            Console.WriteLine($"\tJob Type: {batch.JobType}");
            Console.WriteLine($"\tOperating Mode: {batch.OperatingMode}");
            Console.WriteLine($"\tJob Name: {batch.JobName}");
            Console.WriteLine($"\tOperator Name: {batch.OperatorName}");
            Console.WriteLine($"\tStart Time: {batch.StartTime}");
            Console.WriteLine($"\tReceive Date: {batch.ReceiveDate?.ToShortDateString()}");
            Console.WriteLine($"\tProcess Date: {batch.ProcessDate?.ToShortDateString()}");
            Console.WriteLine($"\tImage File Path: {batch.ImageFilePath}");
            Console.WriteLine($"\tPlugin Message: {batch.PluginMessage}");
            Console.WriteLine($"\tDeveloper Reserved: {batch.DeveloperReserved}");

            foreach (Transaction transaction in batch.Transactions)
            {
                Console.WriteLine();
                Console.WriteLine("\tTransaction:");
                Console.WriteLine($"\t\tTransaction ID: {transaction.TransactionId}");

                foreach (Group group in transaction.Groups)
                {
                    Console.WriteLine();
                    Console.WriteLine("\t\tGroup:");
                    Console.WriteLine($"\t\t\tGroup ID: {group.GroupId}");

                    foreach (Page page in group.Pages)
                    {
                        Console.WriteLine();
                        Console.WriteLine("\t\t\tPage:");
                        Console.WriteLine($"\t\t\t\tDocument Locator: {page.DocumentLocator}");
                        Console.WriteLine($"\t\t\t\tBatch Sequence: {page.BatchSequence}");
                        Console.WriteLine($"\t\t\t\tTransaction Sequence: {page.TransactionSequence}");

                        foreach (Image image in page.Images)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tImage:");
                            Console.WriteLine($"\t\t\t\t\tIndex: {image.Index}");
                            Console.WriteLine($"\t\t\t\t\tRescan Status: {image.RescanStatus}");
                            Console.WriteLine(
                                $"\t\t\t\t\tScantime Final Blank Area Decision: {image.ScantimeFinalBlankAreaDecision}");
                            Console.WriteLine($"\t\t\t\t\tSide: {image.Side}");
                            Console.WriteLine($"\t\t\t\t\tType: {image.Type}");
                            Console.WriteLine($"\t\t\t\t\tDepth: {image.Depth}");
                            Console.WriteLine($"\t\t\t\t\tFormat: {image.Format}");
                            Console.WriteLine($"\t\t\t\t\tFile Name: {image.Filename}");
                            Console.WriteLine($"\t\t\t\t\tFile Size: {image.Filesize}");
                            Console.WriteLine($"\t\t\t\t\tLength: {image.Length}");
                            Console.WriteLine($"\t\t\t\t\tHeight: {image.Height}");
                            Console.WriteLine($"\t\t\t\t\tOffsetLength: {image.OffsetLength}");
                            Console.WriteLine($"\t\t\t\t\tOffsetHeight: {image.OffsetHeight}");
                            Console.WriteLine($"\t\t\t\t\tResolutionLength: {image.ResolutionLength}");
                            Console.WriteLine($"\t\t\t\t\tResolutionHeight: {image.ResolutionHeight}");
                        }

                        foreach (CustomData customData in page.CustomDatas)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tCustomData:");
                            Console.WriteLine($"\t\t\t\t\tEntry: {customData.Entry}");
                        }

                        foreach (Micr micr in page.Micrs)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tMicr:");
                            Console.WriteLine($"\t\t\t\t\tStatus: {micr.Status}");
                            Console.WriteLine($"\t\t\t\t\tRtStatus: {micr.RtStatus}");
                            Console.WriteLine($"\t\t\t\t\tCheckType: {micr.CheckType}");
                            Console.WriteLine($"\t\t\t\t\tSide: {micr.Side}");
                            Console.WriteLine($"\t\t\t\t\tValue: {micr.Value}");
                        }

                        foreach (Ocr ocr in page.Ocrs)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tOcr:");
                            Console.WriteLine($"\t\t\t\t\tIndex: {ocr.Index}");
                            Console.WriteLine($"\t\t\t\t\tSide: {ocr.Side}");
                            Console.WriteLine($"\t\t\t\t\tValue: {ocr.Value}");
                            Console.WriteLine($"\t\t\t\t\tName: {ocr.Name}");
                        }

                        foreach (Barcode barcode in page.Barcodes)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tBarcode:");
                            Console.WriteLine($"\t\t\t\t\tIndex: {barcode.Index}");
                            Console.WriteLine($"\t\t\t\t\tType: {barcode.Type}");
                            Console.WriteLine($"\t\t\t\t\tSide: {barcode.Side}");
                            Console.WriteLine($"\t\t\t\t\tValue: {barcode.Value}");
                        }

                        foreach (MarkDetect markDetect in page.MarkDetects)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tMarkDetect:");
                            Console.WriteLine($"\t\t\t\t\tIndex: {markDetect.Index}");
                            Console.WriteLine($"\t\t\t\t\tSide: {markDetect.Side}");
                            Console.WriteLine($"\t\t\t\t\tResult: {markDetect.Result}");
                            Console.WriteLine($"\t\t\t\t\tName: {markDetect.Name}");
                        }

                        foreach (AuditTrail auditTrail in page.AuditTrails)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tAuditTrail:");
                            Console.WriteLine($"\t\t\t\t\tType: {auditTrail.Type}");
                            Console.WriteLine($"\t\t\t\t\tSide: {auditTrail.Side}");
                            Console.WriteLine($"\t\t\t\t\tText: {auditTrail.Text}");
                            Console.WriteLine($"\t\t\t\t\tApply: {auditTrail.Apply}");
                        }

                        foreach (ReferenceId referenceId in page.ReferenceIds)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tReference ID:");
                            Console.WriteLine($"\t\t\t\t\tIndex: {referenceId.Index}");
                            Console.WriteLine($"\t\t\t\t\tResponse: {referenceId.Response}");
                            Console.WriteLine($"\t\t\t\t\tName: {referenceId.Name}");
                        }

                        foreach (Tag tag in page.Tags)
                        {
                            Console.WriteLine();
                            Console.WriteLine("\t\t\t\tTag:");
                            Console.WriteLine($"\t\t\t\t\tSource: {tag.Source}");
                            Console.WriteLine($"\t\t\t\t\tValue: {tag.Value}");
                        }
                    }
                }
            }

            if (reader.ValidationErrors.Any())
            {
                int errorCount = reader.ValidationErrors.Count;
                Console.WriteLine();
                Console.WriteLine($"{errorCount} validation {(errorCount == 1 ? "error" : "errors")} found:");

                var counter = 1;
                foreach (XmlSchemaException error in reader.ValidationErrors)
                {
                    Console.WriteLine($"\t{counter}. {error.Message}");
                    counter++;
                }
            }
        }
Example #30
0
        public void ReadBatch_PagesPopulated()
        {
            var   reader = new BatchReader(_fileSystemFixture.FileSystem);
            Batch batch  = reader.ReadBatch(@"C:\Opex\test1.oxi");

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages.Count);

            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].DocumentLocator);
            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].BatchSequence);
            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].TransactionSequence);
            Assert.Equal(1, batch.Transactions[0].Groups[0].Pages[0].GroupSequence);
            Assert.Equal(4, batch.Transactions[0].Groups[0].Pages[0].ScanSequence);
            Assert.Equal(new DateTime(2019, 3, 22, 23, 25, 11), batch.Transactions[0].Groups[0].Pages[0].ScanTime);
            Assert.Equal(ItemStatus.Valid, batch.Transactions[0].Groups[0].Pages[0].ItemStatus);
            Assert.False(batch.Transactions[0].Groups[0].Pages[0].IsVirtual);
            Assert.Equal(PageType.Page, batch.Transactions[0].Groups[0].Pages[0].PageType);
            Assert.Equal("Invoice", batch.Transactions[0].Groups[0].Pages[0].PageName);
            Assert.Equal("Signature", batch.Transactions[0].Groups[0].Pages[0].SubPageName);
            Assert.False(batch.Transactions[0].Groups[0].Pages[0].OperatorSelect);
            Assert.Equal("MyBin", batch.Transactions[0].Groups[0].Pages[0].Bin);
            Assert.Equal("20.32 CM", batch.Transactions[0].Groups[0].Pages[0].Length);
            Assert.Equal("11.00 IN", batch.Transactions[0].Groups[0].Pages[0].Height);
            Assert.Equal(EnvelopeDetect.Inactive, batch.Transactions[0].Groups[0].Pages[0].EnvelopeDetect);
            Assert.Equal(1.11f, batch.Transactions[0].Groups[0].Pages[0].AverageThickness);
            Assert.Equal(-0.12f, batch.Transactions[0].Groups[0].Pages[0].SkewDegrees);
            Assert.Equal(DeskewStatus.Yes, batch.Transactions[0].Groups[0].Pages[0].DeskewStatus);
            Assert.Equal(FrontStreakDetectStatus.No, batch.Transactions[0].Groups[0].Pages[0].FrontStreakDetectStatus);
            Assert.Equal(BackStreakDetectStatus.Yes, batch.Transactions[0].Groups[0].Pages[0].BackStreakDetectStatus);
            Assert.Equal("Queue 3", batch.Transactions[0].Groups[0].Pages[0].PlugInPageMessage);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].AuditTrails);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].Barcodes);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].Images);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].MarkDetects);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].Micrs);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].Ocrs);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].ReferenceIds);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].Tags);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[0].CustomDatas);

            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[1].DocumentLocator);
            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[1].BatchSequence);
            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[1].TransactionSequence);
            Assert.Equal(2, batch.Transactions[0].Groups[0].Pages[1].GroupSequence);
            Assert.Equal(5, batch.Transactions[0].Groups[0].Pages[1].ScanSequence);
            Assert.Equal(new DateTime(2019, 3, 22, 23, 25, 18), batch.Transactions[0].Groups[0].Pages[1].ScanTime);
            Assert.Equal(ItemStatus.Void, batch.Transactions[0].Groups[0].Pages[1].ItemStatus);
            Assert.True(batch.Transactions[0].Groups[0].Pages[1].IsVirtual);
            Assert.Equal(PageType.CustomPage1, batch.Transactions[0].Groups[0].Pages[1].PageType);
            Assert.Equal("Affidavit", batch.Transactions[0].Groups[0].Pages[1].PageName);
            Assert.Equal("Notarization", batch.Transactions[0].Groups[0].Pages[1].SubPageName);
            Assert.True(batch.Transactions[0].Groups[0].Pages[1].OperatorSelect);
            Assert.Equal("MyBin2", batch.Transactions[0].Groups[0].Pages[1].Bin);
            Assert.Equal("8.500 IN", batch.Transactions[0].Groups[0].Pages[1].Length);
            Assert.Equal("27.94 CM", batch.Transactions[0].Groups[0].Pages[1].Height);
            Assert.Equal(EnvelopeDetect.Yes, batch.Transactions[0].Groups[0].Pages[1].EnvelopeDetect);
            Assert.Equal(1.35f, batch.Transactions[0].Groups[0].Pages[1].AverageThickness);
            Assert.Equal(13.2f, batch.Transactions[0].Groups[0].Pages[1].SkewDegrees);
            Assert.Equal(DeskewStatus.No, batch.Transactions[0].Groups[0].Pages[1].DeskewStatus);
            Assert.Equal(FrontStreakDetectStatus.Yes, batch.Transactions[0].Groups[0].Pages[1].FrontStreakDetectStatus);
            Assert.Equal(BackStreakDetectStatus.Inactive,
                         batch.Transactions[0].Groups[0].Pages[1].BackStreakDetectStatus);
            Assert.Equal("Queue 4", batch.Transactions[0].Groups[0].Pages[1].PlugInPageMessage);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].AuditTrails);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].Barcodes);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].Images);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].MarkDetects);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].Micrs);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].Ocrs);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].ReferenceIds);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].Tags);
            Assert.NotNull(batch.Transactions[0].Groups[0].Pages[1].CustomDatas);

            Assert.Single(batch.Transactions[0].Groups[1].Pages);

            Assert.Equal(3, batch.Transactions[0].Groups[1].Pages[0].DocumentLocator);
            Assert.Equal(4, batch.Transactions[0].Groups[1].Pages[0].BatchSequence);
            Assert.Equal(3, batch.Transactions[0].Groups[1].Pages[0].TransactionSequence);
            Assert.Equal(5, batch.Transactions[0].Groups[1].Pages[0].GroupSequence);
            Assert.Equal(6, batch.Transactions[0].Groups[1].Pages[0].ScanSequence);
            Assert.Equal(new DateTime(2019, 3, 22, 23, 29, 22), batch.Transactions[0].Groups[1].Pages[0].ScanTime);
            Assert.Equal(ItemStatus.VoidMarked, batch.Transactions[0].Groups[1].Pages[0].ItemStatus);
            Assert.True(batch.Transactions[0].Groups[1].Pages[0].IsVirtual);
            Assert.Equal(PageType.Envelope, batch.Transactions[0].Groups[1].Pages[0].PageType);
            Assert.Equal("Lawsuit", batch.Transactions[0].Groups[1].Pages[0].PageName);
            Assert.Equal("Cover", batch.Transactions[0].Groups[1].Pages[0].SubPageName);
            Assert.False(batch.Transactions[0].Groups[1].Pages[0].OperatorSelect);
            Assert.Equal("MyBin3", batch.Transactions[0].Groups[1].Pages[0].Bin);
            Assert.Equal("11.00 IN", batch.Transactions[0].Groups[1].Pages[0].Length);
            Assert.Equal("21.56 CM", batch.Transactions[0].Groups[1].Pages[0].Height);
            Assert.Equal(EnvelopeDetect.No, batch.Transactions[0].Groups[1].Pages[0].EnvelopeDetect);
            Assert.Equal(2.14f, batch.Transactions[0].Groups[1].Pages[0].AverageThickness);
            Assert.Equal(-9.5f, batch.Transactions[0].Groups[1].Pages[0].SkewDegrees);
            Assert.Equal(DeskewStatus.Inactive, batch.Transactions[0].Groups[1].Pages[0].DeskewStatus);
            Assert.Equal(FrontStreakDetectStatus.Inactive,
                         batch.Transactions[0].Groups[1].Pages[0].FrontStreakDetectStatus);
            Assert.Equal(BackStreakDetectStatus.No, batch.Transactions[0].Groups[1].Pages[0].BackStreakDetectStatus);
            Assert.Equal("Queue 4", batch.Transactions[0].Groups[1].Pages[0].PlugInPageMessage);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].AuditTrails);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].Barcodes);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].Images);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].MarkDetects);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].Micrs);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].Ocrs);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].ReferenceIds);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].Tags);
            Assert.NotNull(batch.Transactions[0].Groups[1].Pages[0].CustomDatas);
        }