Example #1
0
    public override CharacterState HandleInput(Keybord keybord)
    {
        if (keybord == Keybord.RELEASE_J)
        {
            return(new IdleState(this.mHero));
        }

        return(null);
    }
Example #2
0
    public override CharacterState HandleInput(Keybord keybord)
    {
        if (keybord == Keybord.PRESS_J)
        {
            return(new DiviState(this.mHero));
        }

        return(null);
    }
Example #3
0
    public void HandleInput(Keybord keyword)
    {
        CharacterState state = mState.HandleInput(keyword);

        if (state != null)
        {
            mState = state;
            mState.Enter();
        }
    }
Example #4
0
    public override CharacterState HandleInput(Keybord keybord)
    {
        if (keybord == Keybord.PRESS_BlANK)
        {
            return(new JumpState(this.mHero));
        }
        else if (keybord == Keybord.PRESS_J)
        {
            return(new AttackState(this.mHero));
        }

        return(null);
    }
Example #5
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

            Console.WriteLine("Hello World!");
            Console.WriteLine("こんちわ!");

            IPlug monitorA = new Monitor();
            IPlug keybordA = new Keybord();

            //こちらはstaticが不要。
            void Connected(IPlug device)
            {
                Console.WriteLine($"{device}が接続されました!");
            }

            Connected(monitorA);
            Connected(keybordA);

            Console.ReadLine();
        }
Example #6
0
        public override async Task Execute(Message message, TelegramBotClient botClient)
        {
            Schedule.Unit();
            List <string> un = Schedule.GetUniversities();

            string[][] unn = new string[un.ToList().Count][];

            int count = 0;

            foreach (string item in un)
            {
                unn[count] = new[] { item };
                count++;
            }

            var chatId = message.Chat.Id;

            if (!_user.CheckUser(chatId))
            {
                _user.CreateUser(chatId);
            }
            else
            {
                _user.RecreateUser(chatId);
            }
            //await botClient.SendTextMessageAsync(chatId, "Hallo I'm ASP.NET Core Bot and I made by Mr.Robot", parseMode: Telegram.Bot.Types.Enums.ParseMode.Markdown);
            await botClient.SendTextMessageAsync(chatId, "Привет, выбери свой университет", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : Keybord.GetKeyboard(unn, count));
        }
Example #7
0
 public override CharacterState HandleInput(Keybord keybord)
 {
     return(null);
 }
Example #8
0
 public abstract CharacterState HandleInput(Keybord keybord);
        public async Task <OkResult> Post([FromBody] Update update)
        {
            if (update == null)
            {
                return(Ok());
            }

            var commands  = Bot.Commands;
            var message   = update.Message;
            var botClient = await Bot.GetBotClientAsync();


            foreach (var command in commands)
            {
                if (command.Contains(message))
                {
                    await command.Execute(message, botClient);

                    return(Ok());
                }
            }

            Schedule.Unit();

            UserOperation user = new UserOperation();

            if (!user.CheckUser(message.Chat.Id))
            {
                return(Ok());
            }


            if (user.CheckUserElements(message.Chat.Id, "university") == "" && Schedule.IsUniversityExist(message.Text))
            {
                user.EditUser(message.Chat.Id, "university", message.Text);

                List <string> un = Schedule.GetFaculties(user.CheckUserElements(message.Chat.Id, "university"));

                string[][] unn = new string[un.ToList().Count][];

                int count = 0;
                foreach (string item in un)
                {
                    unn[count] = new[] { item };
                    count++;
                }

                await botClient.SendTextMessageAsync(message.Chat.Id, "Теперь выбери факультет", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : Keybord.GetKeyboard(unn, count));

                return(Ok());
            }
            else if (user.CheckUserElements(message.Chat.Id, "faculty") == "" && Schedule.IsFacultyExist(user.GetUserInfo(message.Chat.Id, "university"), message.Text))
            {
                user.EditUser(message.Chat.Id, "faculty", message.Text);

                List <string> un = Schedule.GetCourses(user.CheckUserElements(message.Chat.Id, "university"), user.CheckUserElements(message.Chat.Id, "faculty"));

                string[][] unn = new string[un.ToList().Count][];

                int count = 0;
                foreach (string item in un)
                {
                    unn[count] = new[] { item };
                    count++;
                }

                await botClient.SendTextMessageAsync(message.Chat.Id, "Теперь выбери курс", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : Keybord.GetKeyboard(unn, count));

                return(Ok());
            }
            else if (user.CheckUserElements(message.Chat.Id, "course") == "" && Schedule.IsCourseExist(user.GetUserInfo(message.Chat.Id, "university"), user.GetUserInfo(message.Chat.Id, "faculty"), message.Text))
            {
                user.EditUser(message.Chat.Id, "course", message.Text);

                List <string> un = Schedule.GetGroups(user.CheckUserElements(message.Chat.Id, "university"), user.CheckUserElements(message.Chat.Id, "faculty"), user.CheckUserElements(message.Chat.Id, "course"));

                string[][] unn = new string[un.ToList().Count][];

                int count = 0;
                foreach (string item in un)
                {
                    unn[count] = new[] { item };
                    count++;
                }

                await botClient.SendTextMessageAsync(message.Chat.Id, "Теперь выбери группу", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : Keybord.GetKeyboard(unn, count));

                return(Ok());
            }
            else if (user.CheckUserElements(message.Chat.Id, "group") == "" && Schedule.IsGroupExist(user.GetUserInfo(message.Chat.Id, "university"), user.GetUserInfo(message.Chat.Id, "faculty"), user.GetUserInfo(message.Chat.Id, "course"), message.Text))
            {
                user.EditUser(message.Chat.Id, "group", message.Text);

                string[][] unn = new string[][]
                {
                    new[] { "Сегодня", "Завтра" },
                    new[] { "Сбросить" }
                };


                await botClient.SendTextMessageAsync(message.Chat.Id, "Отлично, можем работать!", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : Keybord.GetKeyboard(unn, 2));

                return(Ok());
            }
            else if (message.Text == "Сегодня" && user.GetUserInfo(message.Chat.Id, "group") != "")
            {
                int day;
                int weekNum = (CultureInfo.CurrentCulture).Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday) % 2 + 1;
                if ((int)DateTime.Now.DayOfWeek == 0)
                {
                    day = 7;
                }
                else
                {
                    day = (int)DateTime.Now.DayOfWeek;
                }

                ScheduleDay schedule = Schedule.GetSchedule(user.CheckUserElements(message.Chat.Id, "university"), user.CheckUserElements(message.Chat.Id, "faculty"), user.CheckUserElements(message.Chat.Id, "course"), user.CheckUserElements(message.Chat.Id, "group"), weekNum, day);

                List <Lesson> listPar = schedule.Lesson.ToList();

                string result = "";
                foreach (Lesson item in listPar)
                {
                    result += item.Number + " пара: " + item.Time + "\n" + item.Name + "\n" + item.Room + "\n\n";
                }
                if (result != "")
                {
                    await botClient.SendTextMessageAsync(message.Chat.Id, result, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
                }
                else
                {
                    await botClient.SendTextMessageAsync(message.Chat.Id, "Учебы нет, отдыхай", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
                }

                return(Ok());
            }
            else if (message.Text == "Завтра" && user.GetUserInfo(message.Chat.Id, "group") != "")
            {
                int day;
                int weekNum = (CultureInfo.CurrentCulture).Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday) % 2 + 1;
                if ((int)DateTime.Now.DayOfWeek == 0)
                {
                    day = 1;
                }
                else
                {
                    if ((int)DateTime.Now.DayOfWeek == 6)
                    {
                        day = 7;
                    }
                    else
                    {
                        day = ((int)DateTime.Now.DayOfWeek + 1) % 7;
                    }
                }

                ScheduleDay schedule = Schedule.GetSchedule(user.CheckUserElements(message.Chat.Id, "university"), user.CheckUserElements(message.Chat.Id, "faculty"), user.CheckUserElements(message.Chat.Id, "course"), user.CheckUserElements(message.Chat.Id, "group"), weekNum, day);

                List <Lesson> listPar = schedule.Lesson.ToList();

                string result = "";
                foreach (Lesson item in listPar)
                {
                    result += item.Number + " пара: " + item.Time + "\n" + item.Name + "\n" + item.Room + "\n\n";
                }
                if (result != "")
                {
                    await botClient.SendTextMessageAsync(message.Chat.Id, result, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
                }
                else
                {
                    await botClient.SendTextMessageAsync(message.Chat.Id, "Учебы нет, отдыхай", parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown);
                }

                return(Ok());
            }
            else if (message.Text == "Сбросить")
            {
                message.Text = @"/start";

                foreach (var command in commands)
                {
                    if (command.Contains(message))
                    {
                        await command.Execute(message, botClient);

                        return(Ok());
                    }
                }

                return(Ok());
            }
            return(Ok());
        }