Example #1
0
        // Выводим на экран опросник
        private void PrintVoteBox(VoteBox vBox)
        {
            Console.WriteLine(">>> Greetings!");
            Console.WriteLine(vBox.Title);
            int num = 1;

            foreach (Option option in vBox.Options)
            {
                Console.WriteLine(num++ + ") " + option.Text);
            }
            Console.WriteLine("0: Статистика");
        }
Example #2
0
        // Выводим статистику
        private void PrintStats(Object stats)
        {
            VoteBox vBox = (VoteBox)stats;

            Console.WriteLine("Current Static:");
            int counter = 1;

            foreach (Option opt in vBox.Options)
            {
                Console.WriteLine(counter++ + ": " + opt.Text + ": " + opt.Count + " глс.");
            }
        }
Example #3
0
        private void Loop()
        {
            while (!isExit)
            {
                if (stream.DataAvailable)
                {
                    byte[] buf = new byte[4096];

                    try {
                        stream.Read(buf, 0, 4096);
                    } catch (Exception ex) {
                        isExit = true;
                        Console.WriteLine(ex.Message);
                    }
                    Packet pack = (Packet)MyFormatter.Deserialize(buf);

                    switch (pack.Command)
                    {
                    case CommandType.Message:
                        Console.WriteLine(pack.GetMessage());
                        break;

                    case CommandType.Collection:
                        VoteBox voteBox = pack.GetVoteBox();
                        PrintVoteBox(voteBox);
                        TakeChoice(voteBox);
                        RequestStats();
                        break;

                    //вприципе тоже самое что и collection
                    case CommandType.Stats:
                        PrintStats(pack.Data);
                        isExit = true;
                        break;

                    default:

                        break;
                    }
                }

                Thread.Sleep(10);
            }
        }
Example #4
0
        // Ждем действия пользователя(выбор/статистика)
        private void TakeChoice(VoteBox vBox)
        {
            bool isValid = false;

            while (!isValid)
            {
                try
                {
                    Console.Write("Choose: ");
                    myChoice = Convert.ToInt32(Console.ReadLine());
                    if (myChoice >= 0 && myChoice <= vBox.Options.Count)
                    {
                        isValid = true;
                    }
                    else
                    {
                        Console.WriteLine("Wrong option. Try Again");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Wrong option. Try Again");
                }

                // Если просто посмотреть статистику
                // хотя это может повлиять на будущий выбор

                if (myChoice == 0)
                {
                    return;
                }
            }



            Packet pack = new Packet();

            pack.Command = CommandType.Choice;
            pack.Data    = (Object)myChoice;

            SendPacket(client, pack);

            Console.WriteLine("Голос отправлен");
        }