public void Simple() { var inputFilePath = Path.Combine(WorkDirecoryPath, "Images", "test.jpg"); var messageDto = new MessageDto { StrId = Guid.NewGuid().ToString(), Text = Guid.NewGuid().ToString(), ImageBytes = File.ReadAllBytes(inputFilePath), EditDate = DateTime.Now, ForwardFromMessageId = 42, ChatId = 411, CreateDate = DateTime.Now, ForwardFromChatId = 4444, ForwardFromChatName = Guid.NewGuid().ToString(), ForwardFromUserId = 3333, ForwardFromUserName = Guid.NewGuid().ToString(), FromUserId = 322, FromUserName = Guid.NewGuid().ToString(), IntId = 444556, MessageDate = DateTime.Now, Timestamp = DateTime.Now.Ticks }; imageBayanService.SaveMessage(messageDto); var queryExecutor = queryExecutorFactory.Create <MessageHandler, MessageDbo>(); var messageDbos = queryExecutor.Execute(x => x.Select(new[] { messageDto.StrId })); Assert.NotEmpty(messageDbos); var actual = messageDbos.Single(); AssertEqual(messageDto, actual); }
public void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) { try { var message = messageEventArgs.Message; log.Info($"RecieveMessage {message.Chat.Id} {message.MessageId}"); if (message?.Type != MessageType.Photo) { return; } var photoSize = message?.Photo?.FirstOrDefault(); if (photoSize == null) { return; } var bytes = telegramClient.GetPhoto(photoSize.FileId); var messageDto = Convert(message, bytes); imageBayanService.SaveMessage(messageDto); log.Info($"SavedMessage {message.Chat.Id} {message.MessageId}"); var bayanMetric = imageBayanService.GetBayanMetric(messageDto.StrId); log.Info($"GetBayanMetrics {bayanMetric.AlreadyWasCount} {message.Chat.Id} {message.MessageId}"); if (bayanMetric.AlreadyWasCount > 0) { var fromChatId = message.Chat.Id; var sendChatId = long.TryParse(settings.SpecialForAnswersChatId, out var chatId) ? chatId : message.Chat.Id; if (fromChatId == sendChatId) { client.SendTextMessageAsync(sendChatId, GetBayanMessage(bayanMetric), replyToMessageId: messageDto.IntId).GetAwaiter().GetResult(); } else { client.ForwardMessageAsync(sendChatId, fromChatId, messageDto.IntId).GetAwaiter().GetResult(); client.SendTextMessageAsync(sendChatId, GetBayanMessage(bayanMetric)).GetAwaiter().GetResult(); } } } catch (Exception e) { log.Error("BotDaemonException", e); Console.WriteLine($"BotDaemonException: {e.Message} {e.StackTrace}"); } }