public async Task Execute(IJobExecutionContext context) { try { var mappedData = context.MergedJobDataMap; var rss = _userRssService.Get(x => x.Id == mappedData.GetString(ScheduleConsts.RSS_ID)); if (rss == null) { return; } var subscription = _userSubscribeService.Get(x => x.Id == context.Trigger.Key.Name); if (subscription == null) { return; } var latestNews = RssHelper.GetLatestUpdates(_logService, rss.Url, subscription.CheckDate.AddHours(3)); if (latestNews.Any()) { var user = _userService.Get(x => x.Id == mappedData.GetString(ScheduleConsts.USER_ID)); var group = _telegramGroupService.Get(x => x.Id == mappedData.GetString(ScheduleConsts.GROUP_ID)); foreach (var item in latestNews) { string link; if (item.Links.FirstOrDefault() == null) { link = ((TextSyndicationContent)item.Content).Text; } else { link = item.Links.FirstOrDefault().Uri.AbsoluteUri; } _telegramBotClient.SendTextMessageAsync(group.ChatId, link); _logService.Save(new dal.entities.NotifierLog { LogLevel = (short)enums.LogLevel.RSS_SENT_INFO, Message = string.Concat(rss.UserId, " ", group.ChatId), StackTrace = link, }); } subscription.CheckDate = DateTime.Now; _userSubscribeService.Save(subscription); } } catch (Exception ex) { _logService.InsertLog(ex, enums.LogLevel.RSS_READ_ERROR); } }