internal void Add(MessageThread child) { children.Add (child); }
void WriteMessageThread (StringBuilder builder, MessageThread thread, int depth) { builder.Append (new string (' ', depth * 3)); if (thread.UniqueId.HasValue) { var summary = summaries[(int) thread.UniqueId.Value.Id]; builder.AppendLine (summary.Envelope.Subject); } else { builder.AppendLine ("dummy"); } foreach (var child in thread.Children) WriteMessageThread (builder, child, depth + 1); }
static void GetThreads (ThreadableNode root, IList<MessageThread> threads, IList<OrderBy> orderBy) { root.Children.Sort (orderBy); for (int i = 0; i < root.Children.Count; i++) { var message = root.Children[i].Message; UniqueId? uid = null; if (message != null) uid = message.UniqueId; var thread = new MessageThread (uid); GetThreads (root.Children[i], thread.Children, orderBy); threads.Add (thread); } }
void WriteMessageThread (StringBuilder builder, IList<MessageSummary> messages, MessageThread thread, int depth) { builder.Append (new string (' ', depth * 3)); if (thread.UniqueId.HasValue) { var summary = messages[(int) thread.UniqueId.Value.Id]; builder.Append (summary.Envelope.Subject); } else { builder.Append ("dummy"); } builder.Append ('\n'); foreach (var child in thread.Children) WriteMessageThread (builder, messages, child, depth + 1); }
static void GetThreads (ThreadableNode root, List<MessageThread> threads, OrderBy[] orderBy) { var sorted = MessageSorter.Sort (root.Children, orderBy); for (int i = 0; i < sorted.Count; i++) { var message = sorted[i].Message; UniqueId? uid = null; if (message != null) uid = message.ThreadableUniqueId; var thread = new MessageThread (uid); GetThreads (sorted[i], thread.children, orderBy); threads.Add (thread); } }
internal void Add(MessageThread child) { children.Add(child); }