public async Task <bool> SendTopicReplyEmailNotificationAsync(int topicId, string currentUserId, string url) { try { var topic = await _manageForumTopics.GetForumTopicAsync(topicId); var currentUser = await _manageUsers.GetUserAsync(currentUserId); var topicSubscriptions = await _manageTopicSubscriptions.GetSubscriptionsForTopicAsync(topicId); foreach (var subscription in topicSubscriptions.Where(p => p.Id != currentUser.Id).ToList()) { var user = await _manageUsers.GetUserAsync(subscription.Id); await _emailSender.SendEmailAsync(user.Email, "RE: " + topic.Title, currentUser.UserName + " has posted a reply to a topic that you're subscribed to at: <a href=\"" + url + "\">" + url + "</a>."); } return(true); } catch (Exception ex) { _logger.LogError(ex, "There was a problem emailing the topic reply notification(s)"); return(false); } }
public async Task <bool> CurrentUserIsSubscribedToTopic(string currentUserId, int topicId) { if (currentUserId != null) { var subscriptions = await _manageTopicSubscriptions.GetSubscriptionsForTopicAsync(topicId); var subscription = subscriptions.Where(p => p.Id == currentUserId).FirstOrDefault(); return(subscription == null ? false : true); } return(false); }
public async Task SendTopicReplyEmailNotification(int topicId, string currentUserId, string url) { var topic = await _manageForumTopics.GetForumTopicAsync(topicId); var currentUser = await _userManager.FindByIdAsync(currentUserId); var topicSubscriptions = await _manageTopicSubscriptions.GetSubscriptionsForTopicAsync(topicId); foreach (var subscription in topicSubscriptions.Where(p => p.Id != currentUser.Id).ToList()) { var user = await _userManager.FindByIdAsync(subscription.Id); await _emailSender.SendEmailAsync(user.Email, "RE: " + topic.Title, currentUser.UserName + " has posted a reply to a topic that you're subscribed to at: <a href=\"" + url + "\">" + url + "</a>."); } }