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)); }
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))); } }