Ejemplo n.º 1
0
 private static Predicate <VerbRaw> PrepareFilter(VerbAspect aspect)
 {
     if (aspect == VerbAspect.Undefined)
     {
         return((item) => true);
     }
     return((item) => item.Aspect == aspect);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Поиск одного точного совпадения. Null - если не найдено.
        /// </summary>
        public static Verb FindOne(string sourceForm, VerbAspect aspect = VerbAspect.Undefined)
        {
            var searchWord = PrepareWord(sourceForm);

            var res = items.FindOne(new VerbRaw()
            {
                Word = searchWord
            }, new StringReverseComparer <VerbRaw>(), PrepareFilter(aspect));

            if (res.Word == null)
            {
                return(null);
            }
            return(new Verb(res, sourceForm));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Поиск по точному или приблизительному совпадению
        /// </summary>
        public static Verb FindSimilar(string sourceForm, VerbAspect aspect = VerbAspect.Undefined)
        {
            var searchWord = PrepareWord(sourceForm);

            var res = items.FindSimilar(new VerbRaw()
            {
                Word = searchWord
            }, new StringReverseComparer <VerbRaw>(), PrepareFilter(aspect));

            if (res.Word == null)
            {
                return(null);
            }
            return(new Verb {
                Word = sourceForm, SchemaIndex = res.SchemaIndex, Aspect = res.Aspect, Inexact = res.Word != searchWord
            });
        }