예제 #1
0
        public PrintPage(FrameworkElement content, FrameworkElement header = null, FrameworkElement footer = null, PageNumbering pageNumbering = PageNumbering.None)
        {
            _printArea = new Grid();
            //// _printArea.Background = new SolidColorBrush(Color.FromArgb(128, 128, 128, 128)); // TEMP, just for testing
            _printArea.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });
            _printArea.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(1, GridUnitType.Star)
            });
            _printArea.RowDefinitions.Add(new RowDefinition()
            {
                Height = GridLength.Auto
            });
            _printArea.Children.Add(new Canvas()
            {
                Width = 10000
            });                                                      // Horizontally stretches the Grid.

            Content = _printArea;

            PageNumbering = pageNumbering;
            AddContent(content);
            Header = header;
            Footer = footer;
        }
        //TODO test different formatting options: unicode, octobraille, nacb where applicable

        public byte[] TestBrailleAPI(string language, string format, int charsPerLine, int linesPerPage, string contraction, int dots)
        {
            Encoding enc             = RoboBrailleProcessor.GetEncodingByCountryCode((Language)Enum.Parse(typeof(Language), language, true));
            var      apiFileContents = enc.GetBytes(IOController.GetTestForLanguage(language));

            PageNumbering pn = PageNumbering.none;

            var brj = new BrailleJob()
            {
                Id                = Guid.NewGuid(),
                FileContent       = apiFileContents,
                UserId            = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension     = ".txt",
                FileName          = "testBraille",
                MimeType          = "plaint/text",
                Status            = JobStatus.Started,
                SubmitTime        = DateTime.Now,
                DownloadCounter   = 0,
                InputFileHash     = RoboBrailleProcessor.GetMD5Hash(apiFileContents),
                BrailleLanguage   = (Language)Enum.Parse(typeof(Language), language, true),
                BrailleFormat     = (BrailleFormat)Enum.Parse(typeof(BrailleFormat), dots.ToString(), true),
                CharactersPerLine = charsPerLine,
                LinesPerPage      = linesPerPage,
                Contraction       = (BrailleContraction)Enum.Parse(typeof(BrailleContraction), contraction, true),
                ConversionPath    = ConversionPath.texttobraille,
                OutputFormat      = (OutputFormat)Enum.Parse(typeof(OutputFormat), format, true),
                PageNumbering     = pn
            };

            var apiTask = Task.Run(() => WebAPICall(brj));

            byte[] apiRes = apiTask.Result;
            return(apiRes);
        }
예제 #3
0
        public override void Interlude()
        {
            foreach (var element in Elements)
            {
                element.Interlude();
            }

            Measurements.Clear();
            Pages.Clear();
            PageNumbering.Reset();
        }
예제 #4
0
        public override void Interlude()
        {
            foreach (var element in Elements.AsParallel())
            {
                element.Interlude();
            }

            Measurements.Clear();
            Pages.Clear();
            PageNumbering.Set(1);
        }
예제 #5
0
        public void TestBraille()
        {
            //setup
            Encoding enc = RoboBrailleProcessor.GetEncodingByCountryCode((Language)Enum.Parse(typeof(Language), language, true));

            resultPath = InputSourceRepository.GetTestResultDirectory() + @"\Braille-" + language + "-" + contraction + "-" + format;
            Directory.CreateDirectory(resultPath);
            InputSourceRepository isr = new InputSourceRepository();

            File.WriteAllBytes(brailleTest, enc.GetBytes(isr.GetTestForLanguage(language)));

            PageNumbering pn = PageNumbering.none;

            if (((OutputFormat)Enum.Parse(typeof(OutputFormat), format, true)).Equals(OutputFormat.Pef))
            {
                charsPerLine = new Random().Next(25, 33);
                linesPerPage = new Random().Next(25, 33);
                switch (new Random().Next(0, 2))
                {
                case 0: pn = PageNumbering.none; break;

                case 1: pn = PageNumbering.left; break;

                case 2: pn = PageNumbering.right; break;

                default: break;
                }
            }

            BrailleJob brj = new BrailleJob()
            {
                Id                = Guid.NewGuid(),
                FileContent       = File.ReadAllBytes(brailleTest),
                UserId            = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension     = ".txt",
                FileName          = "testBraille",
                MimeType          = "plaint/text",
                Status            = JobStatus.Started,
                SubmitTime        = DateTime.Now,
                DownloadCounter   = 0,
                InputFileHash     = new byte[8],
                BrailleLanguage   = (Language)Enum.Parse(typeof(Language), language, true),
                BrailleFormat     = BrailleFormat.sixdot,
                CharactersPerLine = charsPerLine,
                LinesPerPage      = linesPerPage,
                Contraction       = (BrailleContraction)Enum.Parse(typeof(BrailleContraction), contraction, true),
                ConversionPath    = ConversionPath.texttobraille,
                OutputFormat      = (OutputFormat)Enum.Parse(typeof(OutputFormat), format, true),
                PageNumbering     = pn
            };

            if (language == "daDK")
            {
                switch (contraction)
                {
                case "small": contraction = "Lille"; break;

                case "large": contraction = "Grade2"; break;

                case "full": contraction = "Grade1"; break;

                default: break;
                }
            }
            if (language == "nnNO")
            {
                switch (contraction)
                {
                case "level0": contraction = "Grade1"; break;

                case "level1": contraction = "Kortskrift1"; break;

                case "level2": contraction = "Kortskrift2"; break;

                default: break;
                }
                language = "nbNO";
            }
            string        destFile = Guid.NewGuid().ToString() + ".txt";
            SensusRequest sr       = new SensusRequest()
            {
                Process         = "Braille",
                SubProcess      = contraction,
                Option          = format,
                Language        = language.ToLowerInvariant().Insert(2, "-"),
                Prefix          = "",
                RequesterID     = "sensus-test",
                FTPServer       = "2.109.50.19",
                FTPUser         = "******",
                FTPPassword     = "******",
                SourcePath      = brailleTest,
                DestinationFile = destFile
            };

            //act
            var apiTask = Task.Run(() => WebAPICall(brj));

            //var ftpTask = Task.Run(() => FTPCall(sr));
            //Task.WaitAll(new Task[] { apiTask, ftpTask });
            byte[] apiRes = apiTask.Result;
            //byte[] ftpRes =  ftpTask.Result;

            //assert
            //NUnit.Framework.Assert.IsNotNull(ftpRes);
            //string expected = enc.GetString(ftpRes).Trim();
            NUnit.Framework.Assert.IsNotNull(apiRes);
            string result = enc.GetString(apiRes).Trim();
            //byte assertion fails because the files are not the same encoding

            //NUnit.Framework.Assert.AreEqual(ftpRes, apiRes);
            //NUnit.Framework.Assert.AreEqual(expected,result);
        }