예제 #1
0
        public async Task Execute(Message message)
        {
            var todayResult = await _resultRepository.GetByUserIdForToday(message.chat.id);

            if (todayResult == null)
            {
                var userInChat = await _chatRepository.GetUsersCountInChat(message.chat.id);

                if (userInChat < 2)
                {
                    string textUser = "******";
                    _service.SendMessageAsync(message.chat.id, textUser);
                }
                else
                {
                    var candidateUser = await _userRepository.GetByChatIdRandom(message.chat.id);

                    var citation = await _citationRepository.GetRandomCitation();

                    foreach (var item in citation.SkipLast(1))
                    {
                        _service.SendMessageAsync(message.chat.id, citation.ElementAt(1).Text);
                        Thread.Sleep(1000);
                    }

                    string textUser = String.Format(
                        citation.Last().Text,
                        $"{candidateUser.FirstName} {candidateUser.LastName}",
                        new Random().NextDouble() % 10000);

                    var result = new ResultDB()
                    {
                        Date = DateTime.Now,
                        Chat = candidateUser.Chat,
                        User = candidateUser
                    };

                    await SaveResult(result);

                    _service.SendMessageAsync(message.chat.id, textUser);
                }
            }
            else
            {
                var    winUser = todayResult.User;
                string text    = $"Бонусы получил {winUser.FirstName} {winUser.LastName},но лавочка уже закрыта";
                if (new Random().Next() % 2 == 1)
                {
                    text = $"Поздравления от Олега - {winUser.FirstName} {winUser.LastName} хорошо идешь, курс SP в норме. Успехов!";
                }
                _service.SendMessageAsync(message.chat.id, text);
            }
        }
예제 #2
0
        private async Task SaveResult(ResultDB result)
        {
            await _resultRepository.AddAsync(result);

            await _resultRepository.SaveAsync();
        }