Exemplo n.º 1
0
        // Обработчик события "Новая заявка" (генерирует генератор)
        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);
                }
            }
        }