Esempio n. 1
0
        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++;
                    }
                }
            }
        }