Exemple #1
0
 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);
		}
Exemple #3
0
 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();
            }
        }
Exemple #6
0
 public PollOptionDrop(IPortalLiquidContext poll, IPollOption pollOption)
     : base(poll, pollOption.Entity)
 {
     Option = pollOption;
 }