public TopicsController(ITopicsService service, IForumsService forumService, IUsersService userService, ITopicsSubscriptionsService topicSubscriptionService) { _service = service; _forumService = forumService; _userService = userService; _topicSubscriptionService = topicSubscriptionService; }
public MessagesController(IMessagesService service, ITopicsService topicService, IUsersService userService, ITopicsSubscriptionsService topicSubscriptionService) { _service = service; _topicService = topicService; _topicSubscriptionService = topicSubscriptionService; _userService = userService; }
public static void SendNotifications(BaseController controller, Message message, SiteConfiguration config, ITopicsSubscriptionsService service) { if (!config.Notifications.Subscription.IsDefined) { return; } var threadUrl = controller.Domain; threadUrl += controller.Url.RouteUrl(new { controller = "Topics", action = "ShortUrl", id = message.Topic.Id }); threadUrl += "#msg" + message.Id; //Build a generic url that can be replaced with the real values var unsubscribeUrl = controller.Domain + controller.Url.RouteUrl(new { controller = "TopicsSubscriptions", action = "Unsubscribe", uid = Int32.MaxValue, tid = message.Topic.Id, guid = Int64.MaxValue.ToString() }); unsubscribeUrl = unsubscribeUrl.Replace(Int32.MaxValue.ToString(), "{0}"); unsubscribeUrl = unsubscribeUrl.Replace(Int64.MaxValue.ToString(), "{1}"); service.SendNotifications(message, controller.User.Id, threadUrl, unsubscribeUrl); }
/// <summary> /// Determines if a user is subscribed to a topic /// </summary> /// <param name="topicId"></param> /// <param name="userId"></param> /// <param name="config"></param> public static bool IsUserSubscribed(int topicId, int userId, SiteConfiguration config, ITopicsSubscriptionsService service) { if (!config.Notifications.Subscription.IsDefined) { return false; } var usersSubscribed = service.GetSubscribed(topicId); return usersSubscribed.Any(x => x.Id == userId); }
/// <summary> /// Subscribes or unsubscribes a user to a topic /// </summary> public static void Manage(bool subscribe, int topicId, int userId, Guid userGuid, SiteConfiguration config, ITopicsSubscriptionsService service) { if (!config.Notifications.Subscription.IsDefined) { return; } if (subscribe) { service.Add(topicId, userId); } else { service.Remove(topicId, userId, userGuid); } }