예제 #1
0
        public DecideLanguageResult DecideLanguage()
        {
            if (_cache != null)
            {
                return(_cache);
            }

            string language = AppSettingsReader.DefaultLanguage;

            LanguageParameter languageParameter = LanguageParameterParser.ParseLanguageParameter();

            if (languageParameter.IsPresent)
            {
                language = languageParameter.Language;
            }

            if (language.IsFilled() &&
                !LanguageToCultureMapping.Mappings.ContainsKey(key: language))
            {
                Console.WriteLine(text: $"Language \"{language}\" not supported.");
                language = DefaultFallbackLanguage;
            }

            language = language.IsFilled() ? language : DefaultFallbackLanguage;
            return(_cache = new DecideLanguageResult
            {
                Language = language
            });
        }
예제 #2
0
        public List <string> GetStopwords()
        {
            StopwordListParameter stopwordListParameter = StopwordListParameterParser.ParseStopwordListParameter();
            LanguageParameter     languageParameter     = LanguageParameterParser.ParseLanguageParameter();

            bool isStopwordListParameterPresent = stopwordListParameter.IsPresent;

            string fileName = isStopwordListParameterPresent ?
                              stopwordListParameter.FileName :
                              $"stopwords.{languageParameter.Language}.txt";

            if (!FileSystem.File.Exists(path: fileName))
            {
                return(new List <string>());
            }

            if (isStopwordListParameterPresent)
            {
                DisplayOutput.WriteResourceLine(
                    resourceIdent: "USED_STOPWORDLIST",
                    placeholderValues: fileName);
            }

            return(FileSystem
                   .File
                   .ReadAllLines(path: fileName)
                   .ToList());
        }
        public async Task <bool> AddLanguage(LanguageParameter languageParameter)
        {
            var language = Mapper.Map <LanguageParameter, Language>(languageParameter);

            UnitOfWork.Repo.Add(language);
            bool isSaved = await UnitOfWork.SaveChanges() > 0;

            return(isSaved);
        }
        public void LanguageParameterParserTests_args_has_valid_language_parameter_expect_ispresent_true()
        {
            _mockEnvironment
            .Setup(expression: m => m.GetCommandLineArgs())
            .Returns(value: new[] { "-lang=de" });

            LanguageParameter actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.True(condition: actual.IsPresent);
        }
        public void LanguageParameterParserTests_args_is_empty_expect_ispresent_false()
        {
            _mockEnvironment
            .Setup(expression: m => m.GetCommandLineArgs())
            .Returns(value: Array.Empty <string>());

            LanguageParameter actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.False(condition: actual.IsPresent);
        }
예제 #6
0
        public async Task <IActionResult> Create(LanguageParameter language)
        {
            if (ModelState.IsValid)
            {
                var isCreated = await _languageBusiness.AddLanguage(language);

                if (isCreated)
                {
                    return(RedirectToAction("Index"));
                }
            }
            return(View(language));
        }
        public void LanguageParameterParserTests_args_has_valid_de_language_parameter_expect_language_de()
        {
            _mockEnvironment
            .Setup(expression: m => m.GetCommandLineArgs())
            .Returns(value: new[] { "-lang=de" });

            LanguageParameter actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.Equal(
                expected: "de",
                actual: actual.Language);
        }
        public void LanguageParameterParserTests_parameter_is_not_present_expect_language_empty()
        {
            _mockEnvironment
            .Setup(expression: m => m.GetCommandLineArgs())
            .Returns(value: Array.Empty <string>());

            LanguageParameter actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.Equal(
                expected: string.Empty,
                actual: actual.Language);
        }
        public async Task <IActionResult> AddLanguage(LanguageParameter languageParameter)
        {
            if (ModelState.IsValid)
            {
                var isAdded = await _languageBusiness.AddLanguage(languageParameter);

                if (isAdded)
                {
                    var result = await _languageBusiness.GetAllLanguages();

                    return(Ok(result));
                }

                return(NoContent());
            }
            return(BadRequest(ModelState));
        }
        public void LanguageParameterParserTests_Double_Test_FromCache()
        {
            _mockEnvironment
            .Setup(expression: m => m.GetCommandLineArgs())
            .Returns(value: new[] { "-lang=it" });

            LanguageParameter actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.Equal(
                expected: "it",
                actual: actual.Language);

            actual = _systemUnderTest.ParseLanguageParameter();

            Assert.NotNull(@object: actual);
            Assert.Equal(
                expected: "it",
                actual: actual.Language);

            _mockEnvironment
            .Verify(v => v.GetCommandLineArgs(), Times.Once);
        }
예제 #11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="defaultValue">设置项的默认值。</param>
 public LanguageOption(LanguageParameter defaultValue) : base("Language", defaultValue)
 {
 }