예제 #1
0
        public Engine(ISmtModelFactory smtModelFactory, ITranslationEngineFactory ruleEngineFactory, TimeSpan inactiveTimeout, string configDir,
                      string sourceLanguageTag, string targetLanguageTag)
        {
            _smtModelFactory   = smtModelFactory;
            _ruleEngineFactory = ruleEngineFactory;
            _inactiveTimeout   = inactiveTimeout;
            ConfigDirectory    = configDir;
            SourceLanguageTag  = sourceLanguageTag;
            TargetLanguageTag  = targetLanguageTag;
            _lastUsedTime      = DateTime.Now;
            Projects           = new HashSet <Project>();

            if (!Directory.Exists(ConfigDirectory))
            {
                Directory.CreateDirectory(ConfigDirectory);
                _smtModelFactory.InitNewModel(this);
            }
        }
예제 #2
0
 public EngineService(IOptions <EngineOptions> options, ISmtModelFactory smtModelFactory, ITranslationEngineFactory ruleEngineFactory)
 {
     _options           = options.Value;
     _smtModelFactory   = smtModelFactory;
     _ruleEngineFactory = ruleEngineFactory;
     _languagePairs     = new ConcurrentDictionary <Tuple <string, string>, LanguagePair>();
     foreach (string configDir in Directory.EnumerateDirectories(_options.RootDir))
     {
         string configFileName = Path.Combine(configDir, "config.json");
         if (!File.Exists(configFileName))
         {
             continue;
         }
         LanguagePairDto languagePairConfig = JsonConvert.DeserializeObject <LanguagePairDto>(File.ReadAllText(configFileName));
         var             languagePair       = new LanguagePair(languagePairConfig.SourceLanguageTag, languagePairConfig.TargetLanguageTag, configDir);
         foreach (ProjectDto projectConfig in languagePairConfig.Projects)
         {
             CreateProject(languagePair, projectConfig.Id, projectConfig.IsShared);
         }
         _languagePairs[Tuple.Create(languagePair.SourceLanguageTag, languagePair.TargetLanguageTag)] = languagePair;
     }
     _commitTimer = new Timer(EngineCommitCallback, null, _options.EngineCommitFrequency, _options.EngineCommitFrequency);
 }