public bool VoteCallback(string pollID, List <string> selectedVariantIDs, string additionalParams, out string errorMessage) { errorMessage = ""; var settingsID = new Guid(additionalParams.Split(',')[0]); int idQuestion = Convert.ToInt32(additionalParams.Split(',')[1]); var _forumManager = ForumManager.GetForumManager(settingsID); List <int> variantIDs = new List <int>(0); foreach (string id in selectedVariantIDs) { if (!String.IsNullOrEmpty(id)) { variantIDs.Add(Convert.ToInt32(id)); } } var q = ForumDataProvider.GetPollByID(TenantProvider.CurrentTenantID, idQuestion); if (SetupInfo.WorkMode == WorkMode.Promo || q == null || !_forumManager.ValidateAccessSecurityAction(ForumAction.PollVote, q) || ForumDataProvider.IsUserVote(TenantProvider.CurrentTenantID, idQuestion, SecurityContext.CurrentAccount.ID)) { errorMessage = Resources.ForumUCResource.ErrorAccessDenied; return(false); } try { ForumDataProvider.PollVote(TenantProvider.CurrentTenantID, idQuestion, variantIDs); } catch (Exception e) { errorMessage = e.Message.HtmlEncode(); return(false); } var settings = ForumManager.GetSettings(settingsID); if (settings != null && settings.ActivityPublisher != null) { settings.ActivityPublisher.Vote(q.Name, q.TopicID); } return(true); }
public bool VoteCallback(string pollID, List <string> selectedVariantIDs, string additionalParams, out string errorMessage) { errorMessage = ""; int idQuestion = Convert.ToInt32(additionalParams.Split(',')[1]); var _forumManager = Community.Forum.ForumManager.Settings.ForumManager; var variantIDs = new List <int>(0); foreach (var id in selectedVariantIDs) { if (!string.IsNullOrEmpty(id)) { variantIDs.Add(Convert.ToInt32(id)); } } var q = ForumDataProvider.GetPollByID(TenantProvider.CurrentTenantID, idQuestion); if (q == null || !_forumManager.ValidateAccessSecurityAction(ForumAction.PollVote, q) || ForumDataProvider.IsUserVote(TenantProvider.CurrentTenantID, idQuestion, SecurityContext.CurrentAccount.ID)) { errorMessage = Resources.ForumUCResource.ErrorAccessDenied; return(false); } try { ForumDataProvider.PollVote(TenantProvider.CurrentTenantID, idQuestion, variantIDs); } catch (Exception e) { errorMessage = e.Message.HtmlEncode(); return(false); } return(true); }