public Event GetEventByOrder(DayEventsInfo info, int main, int additional) { if (main < 1) { return(null); } if (main <= info.OnScheduledEvents.Length) { var item = info.OnScheduledEvents[main - 1]; if (additional < 1 || additional > item.Events.Count) { return(null); } return(item.Events[additional]); } var offScheduledIndex = main - info.OnScheduledEvents.Length; if (offScheduledIndex > 0 && offScheduledIndex <= info.OffScheduledEvents.Length) { return(info.OffScheduledEvents[offScheduledIndex - 1]); } return(null); }
public string FormatScheduleAndEvents(DayEventsInfo info, DateTime?requestedDate) { var sb = new StringBuilder(); sb.Append("События на "); var displayDay = requestedDate != null ? $"{requestedDate.Value.ToShortDateString()} ({CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(requestedDate.Value.DayOfWeek)})" : "отложенный день (од)"; sb.AppendLine(displayDay); if (info.OnScheduledEvents.Length > 0) { sb.AppendLine("По расписанию:"); for (var scheduleIndex = 0; scheduleIndex < info.OnScheduledEvents.Length; scheduleIndex++) { var item = info.OnScheduledEvents[scheduleIndex]; if (item.Events.Count > 0) { for (var eventIndex = 0; eventIndex < item.Events.Count; eventIndex++) { var additionalOrder = item.Events.Count > 1 ? eventIndex + 1 : (int?)null; AppendEventInfo(sb, scheduleIndex + 1, additionalOrder, item.Events[eventIndex]); } } else { sb.Append(VkStr.Tab) .AppendLine( $"{scheduleIndex + 1}. [{item.Schedule.StartUtcTime:hh\\:mm}] - Нет"); } } } if (info.OffScheduledEvents.Length > 0) { sb.AppendLine("Не по расписанию:"); for (int i = 0; i < info.OffScheduledEvents.Length; i++) { var mainOrder = info.OnScheduledEvents.Length + i + 1; AppendEventInfo(sb, mainOrder, null, info.OffScheduledEvents[i]); } } return(sb.ToString()); }