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); }
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)); } }
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); }
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); }
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); }
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); }
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); }