private async Task <TelegramClient> ConnectTelegramClientAsync(TelegramHelperVo telegramHelperVo) { var client = _telegramClientFactory.CreateClient(telegramHelperVo.Client.Id, telegramHelperVo.Client.Hash); _logger.LogInformation("Connecting the Telegram Client."); await client.ConnectAsync(); return(client); }
async Task ITelegramHelper.MakeAuthenticationAsync(TelegramHelperVo telegramHelperVo) { _logger.LogInformation("Making authentication."); using (var client = await ConnectTelegramClientAsync(telegramHelperVo)) { await client.MakeAuthAsync(telegramHelperVo.Client.PhoneNumber, telegramHelperVo.ConnectionVo.PhoneCodeHash, telegramHelperVo.ConnectionVo.Code); } }
async Task <TelegramCodeResponse> ITelegramHelper.StartAuthenticationAsync(TelegramHelperVo telegramHelperVo) { _logger.LogInformation("Starting authentication."); using (var client = await ConnectTelegramClientAsync(telegramHelperVo)) { _logger.LogDebug($"Sending the code to phone. PhoneNumber: [{telegramHelperVo.Client.PhoneNumber}]."); string phoneCodeHash = await client.SendCodeRequestAsync(telegramHelperVo.Client.PhoneNumber); return(BuildTelegramCodeResponse(phoneCodeHash)); } }
async Task ITelegramHelper.ForwardLastMessageAsync(TelegramHelperVo telegramHelperVo) { _logger.LogInformation("Forwading last message."); using (var client = await ConnectTelegramClientAsync(telegramHelperVo)) { var dialogs = (TLDialogs)await client.GetUserDialogsAsync(); var lastMessage = FilterLastUserMessageSent(telegramHelperVo.FromUser.Id, dialogs); if (string.IsNullOrEmpty(lastMessage.Message)) { _logger.LogDebug("There is no message to forward."); } else { SendMessageToChatAsync(telegramHelperVo.ToUsers, client, lastMessage); } } }
async Task <IEnumerable <TelegramContactResponse> > ITelegramHelper.FindContactsAsync(TelegramHelperVo telegramHelperVo) { _logger.LogInformation("Finding the contacts."); using (var client = await ConnectTelegramClientAsync(telegramHelperVo)) { return((await GetContactsAsync(client)).Union(await GetContactsFromChatAsync(client))); } }
Task INewService.Execute() { TelegramHelperVo telegramHelperVo = _mapper.Map <TelegramHelperVo>(_telegramConfiguration); return(_telegramHelper.ForwardLastMessageAsync(telegramHelperVo)); }