public void Show(AppointmentGroup appointments) { Trace.WriteLine("Show " + appointments); if (appointments == null || !appointments.Next.Any()) { return; } var distinctTimes = 1; var prev = appointments.Next.First(); var first = prev; var prevWindow = this; Show(prev); foreach (var appointment in appointments.Next.Skip(1)) { if (appointment.Start > prev.Start) { if (distinctTimes++ > 2 && appointment.Start.Subtract(first.Start).TotalMinutes > 15) { break; } } var child = new NotificationWindow(this); children.Add(child); child.Top = prevWindow.Top + prevWindow.Height + 5; child.Left = Left; child.Show(appointment); prevWindow = child; } EnsureChildrenOnScreen(); }
private void TimerOnNotificationDue(object sender, NotificationTimer.NotificationDueEventArgs args) { notificationWindow.Show(args.Appointments); UpdateTooltip(args.Appointments); }