private void Child_Create(IPollOption option) { this.PollOptionID = option.PollOptionID.Value; this.OptionPosition = option.OptionPosition.Value; this.OptionText = option.OptionText; this.BusinessRules.CheckRules(); }
private void CreatePollOption() { this.pollOption = this.objectFactory.CreateChild(); this.pollOption.OptionText = this.optionText; this.pollOption.OptionPosition = this.optionPosition; this.poll.PollOptions.Add(this.pollOption); }
private void IncrementVoteCount(OrganizationServiceContext serviceContext, IPollOption pollOption) { var option = serviceContext.CreateQuery("adx_polloption") .FirstOrDefault(o => o.GetAttributeValue <Guid>("adx_polloptionid") == pollOption.Entity.Id); if (option == null) { throw new InvalidOperationException("Unable to retrieve the current poll option."); } int?voteCount = option.GetAttributeValue <int?>("adx_votes") ?? 0; option.SetAttributeValue("adx_votes", (voteCount + 1)); serviceContext.UpdateObject(option); }
public void SubmitPoll(IPoll poll, IPollOption pollOption) { if (poll == null) { throw new InvalidOperationException("Unable to retrieve active poll."); } if (HasUserVoted(poll) || pollOption == null) { return; } var serviceContext = Dependencies.GetServiceContextForWrite(); var pollClone = serviceContext.CreateQuery("adx_poll") .FirstOrDefault(p => p.GetAttributeValue <Guid>("adx_pollid") == poll.Entity.Id); if (pollClone == null) { throw new InvalidOperationException("Unable to retrieve the current poll."); } var optionClone = serviceContext.CreateQuery("adx_polloption") .FirstOrDefault(o => o.GetAttributeValue <Guid>("adx_polloptionid") == pollOption.Entity.Id); if (optionClone == null) { throw new InvalidOperationException("Unable to retrieve the current poll option."); } var user = Dependencies.GetPortalUser(); var visitorId = Dependencies.GetRequestContext().HttpContext.Profile.UserName; if (user != null && user.LogicalName == "contact") { var contact = serviceContext.CreateQuery("contact").FirstOrDefault(c => c.GetAttributeValue <Guid>("contactid") == user.Id); if (contact == null) { throw new InvalidOperationException("Unable to retrieve the current user contact."); } var submission = new Entity("adx_pollsubmission"); submission.SetAttributeValue("adx_name", ResourceManager.GetString("Poll_Submission_For_Message") + contact.GetAttributeValue <string>("fullname")); serviceContext.AddObject(submission); serviceContext.AddLink(submission, "adx_contact_pollsubmission".ToRelationship(), contact); serviceContext.AddLink(submission, "adx_polloption_pollsubmission".ToRelationship(), optionClone); serviceContext.AddLink(submission, "adx_poll_pollsubmission".ToRelationship(), pollClone); IncrementVoteCount(serviceContext, pollOption); serviceContext.SaveChanges(); } else if (!string.IsNullOrEmpty(visitorId)) { var submission = new Entity("adx_pollsubmission"); submission.SetAttributeValue("adx_visitorid", visitorId); submission.SetAttributeValue("adx_name", "Poll submission for " + visitorId); serviceContext.AddObject(submission); serviceContext.AddLink(submission, "adx_polloption_pollsubmission".ToRelationship(), optionClone); serviceContext.AddLink(submission, "adx_poll_pollsubmission".ToRelationship(), pollClone); IncrementVoteCount(serviceContext, pollOption); serviceContext.SaveChanges(); } }
public PollOptionDrop(IPortalLiquidContext poll, IPollOption pollOption) : base(poll, pollOption.Entity) { Option = pollOption; }