public bool WordRequiresCorrection(IDefinitionState definitionState)
        {
            var current = definitionState.CurrentDefinition;
            var isContractionWithoutApostrophe = current.Type == WordType.Contraction &&
                                                 !current.Word.Equals(definitionState.CurrentWord, StringComparison.CurrentCultureIgnoreCase);

            return(isContractionWithoutApostrophe);
        }
        public bool WordRequiresCorrection(IDefinitionState definitionState)
        {
            var current = definitionState.CurrentDefinition;
            var isRegularNounWithoutApostrophe = current.Type == WordType.Noun &&
                                                 !(current.Word + current.Suffix).Equals(definitionState.CurrentWord, StringComparison.CurrentCultureIgnoreCase);

            return(isRegularNounWithoutApostrophe);
        }
Ejemplo n.º 3
0
        public IEnumerable <Correction> GetWordCorrections(IDefinitionState definitionState)
        {
            if (definitionState == null)
            {
                throw new ArgumentNullException(nameof(definitionState));
            }
            var needCorrection =
                _correctionDefinitions.Where(definition => definition.WordRequiresCorrection(definitionState));

            return(needCorrection.Select(definition => CreateCorrection(definitionState, definition.CorrectionType)));
        }
Ejemplo n.º 4
0
        public bool WordRequiresCorrection(IDefinitionState definitionState)
        {
            var current = definitionState.CurrentDefinition;
            var isProperNounSuffixedByS = current.Type == WordType.ProperNoun &&
                                          current.Suffix.Equals("s", StringComparison.CurrentCultureIgnoreCase);

            if (isProperNounSuffixedByS)
            {
                var nextWordIsNoun   = definitionState.NextDefinition.Type == WordType.Noun;
                var previousWordIsIs = definitionState.PreviousWord.Equals("is",
                                                                           StringComparison.CurrentCultureIgnoreCase);
                if (nextWordIsNoun || previousWordIsIs)
                {
                    var currentWord         = definitionState.CurrentWord;
                    var nextToLastCharacter = currentWord.Substring(currentWord.Length - 2, 1);
                    if (nextToLastCharacter != "'")
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 5
0
 private Correction CreateCorrection(IDefinitionState definitionState, CorrectionType correctionType) =>
 new Correction(correctionType, definitionState.SourceString, definitionState.CurrentWord);