public void Tick(int day, int ticks) { var ticksInDay = ticks % BoundaryConditions.DayLength; var startingShifts = workshiftsCM.GetAll().Where(i => i.Begin == ticksInDay).ToList(); if (!startingShifts.Any()) { return; } foreach (var startingShift in startingShifts) { foreach (var employeeTypeAndAmount in startingShift.EmployeeTypes) { for (int a = 0; a < employeeTypeAndAmount.Value; a++) { var employeeTicker = new EmployeeTicker(ContinousEmployeeId, inputQueue, doneQueue, employeeTypeAndAmount.Key, day * BoundaryConditions.DayLength + startingShift.End, accounting); employeeTicker.LogEvent += EmployeeTicker_LogEvent; tickerManager.Add(employeeTicker); ContinousEmployeeId++; } } } }