Example #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="tokens"></param>
 private static void FillTokensReferences(TextTokenPartInfo part)
 {
     for (int index = 0; index < part.TokensCount; index++)
     {
         FillTokenReference(index, part);
     }
 }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="part"></param>
        private static void FillTokenReference(int index, TextTokenPartInfo part)
        {
            var token = part.Tokens[index];

            token.TokenPart       = part;
            token.TokenPartNumber = part.PartNumber;
            token.TokenNumber     = index + 1;
            token.PreviousToken   = GetPreviousToken(index, part);
            token.NextToken       = GetNextToken(index, part);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="textPart"></param>
        /// <returns></returns>
        private TextTokenPartInfo GetTokenPart(TextPartInfo textPart)
        {
            var info = new TextTokenPartInfo();

            info.PartNumber = textPart.PartNumber;

            var texts = textPart.Text.Split(new string[] { Splitter }, StringSplitOptions.None).ToList();

            info.Tokens = texts.Select(s => GetToken(textPart.PartNumber, s)).ToList();

            return(info);
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="textPart"></param>
        /// <returns></returns>
        private TextTokenPartInfo GetTokenPart(TextPartInfo textPart)
        {
            var info = new TextTokenPartInfo();

            info.PartNumber = textPart.PartNumber;

            var texts = Regex.Split(textPart.Text, Splitter);

            info.Tokens = texts.Select(s => GetToken(textPart.PartNumber, s)).ToList();

            return(info);
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="part"></param>
        /// <returns></returns>
        private static TextTokenInfo GetPreviousToken(int index, TextTokenPartInfo part)
        {
            var tokens = part.Tokens;
            var token  = tokens[index];

            var previousIndex = index - 1;

            if (previousIndex >= 0)
            {
                return(tokens[previousIndex]);
            }

            if (token.PreviousToken == null && index == 0)
            {
                return(part.PreviousPart?.Tokens?.LastOrDefault());
            }

            return(null);
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="part"></param>
        /// <returns></returns>
        private static TextTokenInfo GetNextToken(int index, TextTokenPartInfo part)
        {
            var tokens = part.Tokens;
            var token  = tokens[index];

            var nextPrevious = index + 1;

            if (nextPrevious < tokens.Count)
            {
                return(tokens[nextPrevious]);
            }

            if (token.NextToken == null && tokens.IsLast(token))
            {
                return(part.NextPart?.Tokens?.FirstOrDefault());
            }

            return(null);
        }
Example #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="tokenPart"></param>
 /// <param name="filters"></param>
 private static void FilterPageTokens(TextTokenPartInfo tokenPart, List <TextTokenFilter> filters)
 {
     tokenPart.Tokens.ForEach(f => FilterToken(f, filters));
 }