Ejemplo n.º 1
0
        private static void Create(this Sequences sequences, UdpSender sender, string sequence)
        {
            var link = sequences.Create(FromStringToLinkArray(sequence));

            sender.Send(string.Format("Sequence with balanced variant at {0} created.", link));
        }
Ejemplo n.º 2
0
        private static void Search(this Sequences sequences, UdpSender sender, string sequenceQuery)
        {
            var actualLength = sequenceQuery.Length - 1;
            var linksSequenceQuery = new ulong[actualLength];
            for (var i = 0; i < actualLength; i++)
                if (sequenceQuery[i] == '_') // Добавить экранирование \_ в качестве _ (или что-то в этом роде)
                    linksSequenceQuery[i] = Sequences.Any;
                else if (sequenceQuery[i] == '*')
                    linksSequenceQuery[i] = Sequences.ZeroOrMany;
                else
                    linksSequenceQuery[i] = FromCharToLink(sequenceQuery[i]);

            if (linksSequenceQuery.Contains(Sequences.Any) || linksSequenceQuery.Contains(Sequences.ZeroOrMany))
            {
                var patternMatched = sequences.MatchPattern(linksSequenceQuery);

                sender.Send(string.Format("{0} sequences matched pattern.", patternMatched.Count));
                foreach (var result in patternMatched)
                    sender.Send(string.Format("\t{0}: {1}", result, sequences.FormatSequence(result, AppendLinkToString, false)));
            }
            else
            {
                var fullyMatched = sequences.GetAllMatchingSequences1(linksSequenceQuery);

                sender.Send(string.Format("{0} sequences matched fully.", fullyMatched.Count));
                foreach (var result in fullyMatched)
                    sender.Send(string.Format("\t{0}: {1}", result, sequences.FormatSequence(result, AppendLinkToString, false)));

                var partiallyMatched = sequences.GetAllPartiallyMatchingSequences1(linksSequenceQuery);

                sender.Send(string.Format("{0} sequences matched partially.", partiallyMatched.Count));
                foreach (var result in partiallyMatched)
                    sender.Send(string.Format("\t{0}: {1}", result, sequences.FormatSequence(result, AppendLinkToString, false)));

                var allConnections = sequences.GetAllConnections(linksSequenceQuery);

                sender.Send(string.Format("{0} sequences connects query elements.", allConnections.Count));
                foreach (var result in allConnections)
                    sender.Send(string.Format("\t{0}: {1}", result, sequences.FormatSequence(result, AppendLinkToString, false)));
            }
        }