Example #1
0
        public async Task <Message> GetStatisticMessage(Message message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }
            var newMessage = (Message)message.Clone();

            var result = await StatisticDatabase.UserTrackExist(message.User);

            if (result)
            {
                var userStat = await StatisticDatabase.GetUserStatistic(message.User);

                newMessage.BasicText =
                    MessageTextPatterns.GetStatisticPage(userStat.WrongAnswers, userStat.CorrectAnswers);
            }
            else
            {
                newMessage.BasicText = MessageTextPatterns.GetEmptyStatisticPage();
            }
            newMessage.MessageType   = MessageType.Simple;
            newMessage.KeyboardTypes = KeyboardTypes.MainKeyboard;
            return(newMessage);
        }
Example #2
0
 private string GetAnswerText(Message newMessage, Message pastMessage)
 {
     if (pastMessage is null)
     {
         return(MessageTextPatterns.GetStartMessage());
     }
     else
     {
         var answer = newMessage.BasicText == pastMessage.RightAnswer.ToString();
         return(MessageTextPatterns.GetResultMessage(answer));
     }
 }
Example #3
0
        public Message GetMainPage(Message message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }
            var newMessage = (Message)message.Clone();

            newMessage.BasicText     = MessageTextPatterns.GetMainPage();
            newMessage.MessageType   = MessageType.Simple;
            newMessage.KeyboardTypes = KeyboardTypes.MainKeyboard;
            return(newMessage);
        }
Example #4
0
        public void GetSelectPage_WithPastMessage_ReturnsMessage(string answer, int rightAnswer, bool expectedResult)
        {
            var fakeDatabase = new FakeMusicDatabase {
                MusicTrack = track
            };
            var messageBuilder = new MessageBuilder(fakeDatabase);
            var user           = new User {
                ChatId = "12345", MessengerClass = nameof(FakeMessengerApi)
            };
            var message = new Message(user)
            {
                BasicText = answer, RightAnswer = rightAnswer
            };
            var resultText = MessageTextPatterns.GetResultMessage(expectedResult);

            var newMessage = messageBuilder.GetSelectPage(message, message);

            StringAssert.Contains(newMessage.AdditionalText, resultText);
        }
Example #5
0
        public void GetSelectPage_OneMessage_ReturnsStartingMessage()
        {
            var fakeDatabase = new FakeMusicDatabase {
                MusicTrack = track
            };
            var messageBuilder = new MessageBuilder(fakeDatabase);
            var user           = new User {
                ChatId = "123456", MessengerClass = nameof(FakeMessengerApi)
            };
            var message = new Message(user)
            {
                BasicText = "Test"
            };
            var startText = MessageTextPatterns.GetStartMessage();

            var newMessage = messageBuilder.GetSelectPage(message);

            StringAssert.Contains(newMessage.AdditionalText, startText);
        }
Example #6
0
        public void GetMainPage_WhenCall_ReturnsMessage()
        {
            var fakeDatabase = new FakeMusicDatabase {
                MusicTrack = track
            };
            var messageBuilder = new MessageBuilder(fakeDatabase);
            var user           = new User {
                ChatId = "123456", MessengerClass = nameof(FakeMessengerApi)
            };
            var message = new Message(user)
            {
                BasicText = "Test"
            };
            var mainPageText = MessageTextPatterns.GetMainPage();

            var newMessage = messageBuilder.GetMainPage(message);

            StringAssert.Contains(mainPageText, newMessage.BasicText);
        }
Example #7
0
        public Message GetSelectPage(Message message, Message pastMessage = null)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var musicTracks = musicDatabase.GetRandomMusicTracksAsync(4).Result;
            var random      = new Random();
            var rightAnswer = random.Next(0, 3);

            var selectMessage = (Message)message.Clone();

            selectMessage.MessageType    = MessageType.Music;
            selectMessage.KeyboardTypes  = KeyboardTypes.KeyboardSelection;
            selectMessage.MusicTrack     = musicTracks[rightAnswer];
            selectMessage.RightAnswer    = ++rightAnswer;
            selectMessage.AdditionalText = GetAnswerText(message, pastMessage);
            selectMessage.BasicText      = MessageTextPatterns.GetSelectPage(musicTracks);

            return(selectMessage);
        }