Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }