public static void AddTimetableToCalendar(ITimetable timetable, DateTime dateOfMondayOfWeekOne) { _dateOfMondayOfWeekOne = dateOfMondayOfWeekOne; List <Event> events = ConvertTimetableToEvents(timetable); AddEventsToCalendar(events); }
public CurrencyRateProcessor( ICurrencyNameFormatter formatter, ITimetable timetable) { this.formatter = formatter; this.timetable = timetable; }
public void GenerateGui(ITimetable timetable) { var slots = timetable.ToList(); ClearGui(); slots.Sort(); NoOfSelectedSubjectLabel.Content = GetSubjectCount(slots); GenerateTimetableView(slots); DescriptionViewer.Update(slots); }
private static List <Event> ConvertTimetableToEvents(ITimetable timetable) { List <Slot> slotList = timetable.ToList(); var events = new List <Event>(); foreach (var slot in slotList) { events.Add(ConvertSlotToEvent(slot)); } return(events); }
public WriterApp( IRatesUpdater ratesUpdater, ITimetable timetable, ISystemClock clock, ILogger <WriterApp> logger) { this.ratesUpdater = ratesUpdater; this.timetable = timetable; this.clock = clock; this.logger = logger; }
public Page_AddToGoogleCalendar(ITimetable timetable, DateTime dateOfMondayOfWeekOne) { InitializeComponent(); _timetable = timetable; _dateOfMondayOfWeekOne = dateOfMondayOfWeekOne; if (_dateOfMondayOfWeekOne.DayOfWeek != DayOfWeek.Monday) { InstructionLabel.Visibility = Visibility.Visible; return; } OpenDialogHost(_dateOfMondayOfWeekOne); }
public void Remove_BasicTest(ITimetable timetable) { timetable.AddOrUpdate("a", 100); timetable.AddOrUpdate("b", 50); timetable.Remove("a"); var items = timetable.GetTimetable(); items.Count.Should().Be(1); items[0].RouteId.Should().Be("b"); items[0].MsBeforeArrival.Should().Be(50); }
public bool Contains(ITimetable item) { return(_timetables.Contains(item)); }
public void Add(ITimetable timetable) { _timetables.Add(timetable); }
bool ICollection <ITimetable> .Remove(ITimetable item) { return(_timetables.Remove(item)); }
private IEnumerable <ListItem> GetAllItems(ITimetable timetable, Func <ITrain, string> func) => timetable.Trains.Select(func).Distinct().Where(s => s != "").OrderBy(s => s).Select(s => new ListItem { Text = s }).ToArray();
public override Task OnActivateAsync() { _timetable = new NaiveTimetable(); return(base.OnActivateAsync()); }
public Page_SaveTimetableAsImage(ITimetable input) { InitializeComponent(); TimeTableGui.GenerateGUI(input); }
private void Parsing(IXLWorksheet worksheet, ITimetable timetable) { //нужно получить список групп //из них поймем длину таблицы (*кол-во столбцов) const int firstGroup = 4; //где неачинается полезная информация IXLRow currentRow = FindRaw(worksheet, "№ гр.", 1); var index = firstGroup; //начало групп while (!currentRow.Cell(index).IsEmpty()) //ищем конец групп { index++; } var lastGroup = index - 1; var groupRow = currentRow.Row(firstGroup, lastGroup); //строка групп var pastDaysBuffer = 0; //сдвиг строк относительно предыдущих дней //берем range n-го интервала времени для всех групп var groupInterval = GetGroupInterval(worksheet, groupRow.RowNumber()); //кол-во строк для номера группы for (var dayIndex = 0; dayIndex < 6; dayIndex++) //+совместные пары для групп { //определяем, сколько пар в этом дне (может еще в 19:05 и еще одна быть) var lessonsCount = 1; var dayColumn = worksheet.FirstColumnUsed(); while (dayColumn.Cell(groupRow.FirstCell().Address.RowNumber + groupInterval - 1 + lessonsCount * 4 + pastDaysBuffer).Style.Border.BottomBorder != XLBorderStyleValues.Medium) { lessonsCount++; } //начинаем проверять каждое время на пары for (var timeIndex = 0; timeIndex < lessonsCount; timeIndex++) { index = groupRow.FirstCell().Address.RowNumber + groupInterval + 4 * timeIndex + pastDaysBuffer; //индекс обрабатываемой строки var currentRange = worksheet.Range(index, firstGroup, index + 3, lastGroup); //идти по ней, проверяя на жирный текст //при нахождении искать первую границу справа, потом снизу for (var i = 1; i <= lastGroup - firstGroup + 1; i++) { for (var k = 1; k < 4; k += 2) { var currentCell = currentRange.Cell(k, i); if (currentCell.IsMerged() && (currentCell.MergedRange().FirstCell() != currentCell)) { continue; } if (currentCell.Style.Font.Bold && (currentCell.Value.ToString() != "")) { timetable.Lessons.Add(GetLessonData(worksheet, groupRow, currentRange, i, dayIndex, timeIndex, k)); } if (currentCell.IsMerged()) { var mergedRange = currentCell.MergedRange(); for (var j = 1; j <= mergedRange.ColumnCount(); j++) { string group = worksheet.Cell(groupRow.FirstCell().Address.RowNumber, mergedRange.Cell(1, j).Address.ColumnNumber).Value.ToString(); Lesson l = timetable.Lessons[timetable.Lessons.Count - 1] as Lesson; //я бегло не могу сообразить, что здесь может пойти не так, а глубже я уже не в состояни вникать timetable.Lessons.Add(new Lesson(l.Time, l.Type, group, l.Room, l.WeekType, l.Day, l.Teacher, l.Subject)); //работает - не трожь } } } } } pastDaysBuffer += lessonsCount * 4 + 1; } //return timetable; }
public void GenerateGUI(ITimetable timetable) { TimeTableGui.GenerateGui(timetable); TimetableDescriptionViewer.GenerateAsImage(timetable.ToList()); }