Пример #1
0
 private static InteractiveTranslationResultDto CreateDto(HybridInteractiveTranslationResult result,
                                                          IReadOnlyList <string> sourceSegment)
 {
     return(new InteractiveTranslationResultDto
     {
         WordGraph = CreateDto(result.SmtWordGraph, sourceSegment),
         RuleResult = CreateDto(result.RuleResult, sourceSegment)
     });
 }
Пример #2
0
        public async Task InteractiveTranslateAsync_EngineDoesNotExist()
        {
            using (var env = new EngineServiceTestEnvironment())
            {
                env.CreateEngineService();
                HybridInteractiveTranslationResult result = await env.Service.InteractiveTranslateAsync(
                    "engine1", "Esto es una prueba .".Split());

                Assert.That(result, Is.Null);
            }
        }
Пример #3
0
        public async Task <IActionResult> InteractiveTranslateAsync(string locatorType, string locator,
                                                                    [FromBody] string[] segment)
        {
            HybridInteractiveTranslationResult result = await _engineService.InteractiveTranslateAsync(
                GetLocatorType(locatorType), locator, segment);

            if (result == null)
            {
                return(NotFound());
            }
            return(Ok(CreateDto(result, segment)));
        }
Пример #4
0
        public async Task InteractiveTranslateAsync_EngineExists()
        {
            using (var env = new EngineServiceTestEnvironment())
            {
                string engineId = (await env.CreateEngineAsync("es", "en", true)).Id;
                env.CreateEngineService();
                HybridInteractiveTranslationResult result = await env.Service.InteractiveTranslateAsync(
                    engineId, "Esto es una prueba .".Split());

                Assert.That(result.RuleResult.TargetSegment, Is.EqualTo("this is a test .".Split()));
                Assert.That(result.SmtWordGraph.Arcs.SelectMany(a => a.Words), Is.EqualTo("this is a test .".Split()));
            }
        }
Пример #5
0
        public async Task <IActionResult> InteractiveTranslateAsync(string locatorType, string locator,
                                                                    [FromBody] string[] segment)
        {
            Engine engine = await _engines.GetByLocatorAsync(GetLocatorType(locatorType), locator);

            if (engine == null)
            {
                return(NotFound());
            }
            if (!await AuthorizeAsync(engine, Operations.Read))
            {
                return(StatusCode(StatusCodes.Status403Forbidden));
            }

            HybridInteractiveTranslationResult result = await _engineService.InteractiveTranslateAsync(engine.Id,
                                                                                                       segment);

            if (result == null)
            {
                return(NotFound());
            }
            return(Ok(CreateDto(result, segment)));
        }