Exemple #1
0
        static void ActionsJournal(ShowJournal show, Journal collect1, Journal collect2)
        {
            Console.WriteLine(JournalMenu);
            int numCollect = CheckInt();

            if (numCollect < 1 || numCollect > 2)
            {
                throw new IndexOutOfRangeException("Выберете коллекцию 1 или 2!");
            }
            else if (numCollect == 1)
            {
                show(collect1);
            }
            else
            {
                show(collect2);
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.Default;
            MyNewCollection OneCollect = new MyNewCollection();
            MyNewCollection TwoCollect = new MyNewCollection();
            Journal         oneJournal = new Journal();
            Journal         twoJournal = new Journal();

            // создаем возможные события для объекта типа MyNewCollection и подписываем на событие объект класса Journal

            // подписка на события первого журнала:
            // добавление\удаление и изменение элементов 1 коллекции
            OneCollect.CollectionCountChanges     += new MyCollectionHandler(oneJournal.CollectionCountChanged);
            OneCollect.CollectionReferenceChanges += new MyCollectionHandler(oneJournal.CollectionReferenceChanged);

            // подписка на события второго журнала:
            // изменение элементов 1 и 2 коллекции
            OneCollect.CollectionReferenceChanges += new MyCollectionHandler(twoJournal.CollectionReferenceChanged);
            TwoCollect.CollectionReferenceChanges += new MyCollectionHandler(twoJournal.CollectionReferenceChanged);

            AddRemoveShow act;
            ShowJournal   show;
            bool          flag = false;

            while (!flag)
            {
                try
                {
                    Console.Clear();
                    Console.Write(MAINMENU);
                    int choise = CheckInt();
                    switch (choise)
                    {
                    case 1:
                        act = new AddRemoveShow(AddElemInCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элементы успешно добавлены");
                        break;

                    case 2:
                        act = new AddRemoveShow(RemoveInCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элементы успешно удалены");
                        break;

                    case 3:
                        act = new AddRemoveShow(ChangeItemCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Элемент успешно изменен");
                        ENTER();
                        break;

                    case 4:
                        act = new AddRemoveShow(ShowCollection);
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        ENTER();
                        break;

                    case 5:
                        show = new ShowJournal(ShowJ);
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Журнал событий: ");
                        Console.ForegroundColor = ConsoleColor.DarkYellow;
                        ActionsJournal(show, oneJournal, twoJournal);
                        Console.ResetColor();
                        ENTER();
                        break;

                    case 6:
                        show = new ShowJournal(Clear);
                        ActionsJournal(show, oneJournal, twoJournal);
                        Console.WriteLine("Журнал отчищен!");
                        ENTER();
                        break;

                    case 7:
                        act = new AddRemoveShow(x => x.Clear());
                        ChoiseCollectionForAct(act, OneCollect, TwoCollect);
                        Console.WriteLine("Коллекция отчищена");
                        break;

                    case 8:
                        flag = !flag;
                        break;

                    default:
                        Console.WriteLine("Неопознанное значение!");
                        ENTER();
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    ENTER();
                }
            }
        }