// Обработчик события "Новая заявка" (генерирует генератор) private void NewApplicationHandler(object sender, OnlyClipArgs e) { PrintResult("Менеджер: получена заявка на клип <" + e.Clip + ">."); if (_Broadcast.Current != e.Clip) { if (e.Clip.Popularity != 10) { // Удаляем клип из предыдущей очереди _QueuesList[10 - e.Clip.Popularity].RemoveClip(e.Clip, PrintResult); // Добавляем клип в очередь с популярностью выше текущей _QueuesList[9 - e.Clip.Popularity].AddClip(e.Clip, _LogList, PrintResult); } else { // Попытка передвинуть клип ближе к началу _QueuesList[0].BumpClip(e.Clip, PrintResult); } } else { PrintResult("Менеджер: так как клип <" + e.Clip + "> находится на воспроизведении, его популярность не может быть изменена."); } }
// Активатор public void OnNewApplication() { int temp = 0; if (_ClipsList != null && (temp = _ClipsList.Count) > 0) { OnlyClipArgs E = new OnlyClipArgs(); E.Clip = _ClipsList[_Rnd.Next(temp)]; if (NewApplication != null) { NewApplication(this, E); } } }