コード例 #1
0
        public async void should_correctly_do_a_full_send_then_receive_in_single_pipeline()
        {
            var filename = "example_save.json";

            _testOutputHelper.WriteLine("{0}/{1}", Environment.CurrentDirectory, filename);

            var serializer          = new JsonSerializer();
            var deserializer        = new JsonDeserializer();
            var memoryEndpoint      = new InMemoryEndpoint();
            var encryptor           = new AesEncryptor("some-password");
            var encryptionProcessor = new EncryptDataProcessor(encryptor);
            var decryptionProcessor = new DecryptDataProcessor(encryptor);

            var saveToBinaryFilePipeline = new PipelineBuilder()
                                           .StartFromInput()
                                           .SerializeWith(serializer)
                                           .ProcessWith(encryptionProcessor)
                                           .ThenSendTo(memoryEndpoint)
                                           .ThenReceiveFrom(memoryEndpoint)
                                           .ProcessWith(decryptionProcessor)
                                           .DeserializeWith <GameData>(deserializer)
                                           .Build();

            var dummyData   = GameData.CreateRandom();
            var outputModel = await saveToBinaryFilePipeline.Execute(dummyData);

            Assert.AreEqual(dummyData, outputModel);
        }
コード例 #2
0
        public async void should_correctly_encrypt_save_then_reload()
        {
            var filename = "encrypted_save.bin";

            Console.WriteLine("{0}/{1}", Environment.CurrentDirectory, filename);

            var serializer          = new JsonSerializer();
            var deserializer        = new JsonDeserializer();
            var encryptor           = new AesEncryptor("dummy-password-123");
            var encryptionProcessor = new EncryptDataProcessor(encryptor);
            var decryptionProcessor = new DecryptDataProcessor(encryptor);
            var fileEndpoint        = new FileEndpoint(filename);

            var dummyData       = GameData.CreateRandom();
            var output          = serializer.Serialize(dummyData);
            var encryptedOutput = await encryptionProcessor.Process(output);

            await fileEndpoint.Send(encryptedOutput);

            var data = await fileEndpoint.Receive();

            var decryptedData = await decryptionProcessor.Process(data);

            var outputModel = deserializer.Deserialize <GameData>(decryptedData);

            Assert.AreEqual(dummyData, outputModel);
        }
コード例 #3
0
        protected override void ConfigureConverter(ProjectFile projectFile, IMultiFileConverter multiFileConverter)
        {
            if (!AgreementMethods.UserAgreed())
            {
                CancelHelper.CancelTaskIfRequested(true);
            }

            if (!_settings.ShouldDeanonymize ?? false)
            {
                return;
            }

            var projectController = SdlTradosStudio.Application.GetController <ProjectsController>();

            multiFileConverter.AddBilingualProcessor(new BilingualContentHandlerAdapter(new DecryptDataProcessor(_settings)));

            var project              = projectController.CurrentProject ?? projectController.SelectedProjects.ToList()[0];
            var projectFiles         = project.GetTargetLanguageFiles();
            var unParsedProjectFiles = new List <ProjectFile>();

            foreach (var file in projectFiles)
            {
                if (TaskFiles.GetIds().Contains(file.Id))
                {
                    continue;
                }

                unParsedProjectFiles.Add(file);
            }

            var editor     = SdlTradosStudio.Application.GetController <EditorController>();
            var activeDocs = editor.GetDocuments().ToList();

            foreach (var activeDoc in activeDocs)
            {
                Application.Current.Dispatcher.Invoke(() => { editor.Close(activeDoc); });
            }

            foreach (var file in unParsedProjectFiles)
            {
                var converter        = DefaultFileTypeManager.CreateInstance(true).GetConverterToDefaultBilingual(file.LocalFilePath, file.LocalFilePath, null);
                var contentProcessor = new DecryptDataProcessor(_settings);
                converter.AddBilingualProcessor(new BilingualContentHandlerAdapter(contentProcessor));
                converter.Parse();
            }
        }