Polls
List of examples:
Polls
Creating a poll
// Creates a new poll object
PollInfo newPoll = new PollInfo();
// Sets the poll properties (the poll is global)
newPoll.PollDisplayName = "Color poll";
newPoll.PollCodeName = "ColorPoll";
newPoll.PollTitle = "Color poll";
newPoll.PollQuestion = "What is your favorite color?";
newPoll.PollResponseMessage = "Thank you for voting.";
newPoll.PollAllowMultipleAnswers = false;
newPoll.PollAccess = SecurityAccessEnum.AllUsers;
// Saves the new poll to the database
PollInfoProvider.SetPollInfo(newPoll);
Updating a poll
// Gets the poll
// In this case, the poll is global. The . prefix in the code name parameter specifies a global poll.
PollInfo updatePoll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (updatePoll != null)
{
    // Updates the poll properties
    updatePoll.PollDisplayName = updatePoll.PollDisplayName.ToLower();
    // Saves the updated poll to the database
    PollInfoProvider.SetPollInfo(updatePoll);
}
Updating multiple polls
// Gets all polls created for the current site
// Only returns polls created directly for the given site. Does not include global polls that are made available on the site.
var polls = PollInfoProvider.GetPolls().OnSite(SiteContext.CurrentSiteID);
// Loops through individual polls
foreach (PollInfo poll in polls)
{
    // Updates the poll properties
    poll.PollDisplayName = poll.PollDisplayName.ToUpper();
    // Saves the updated poll to the database
    PollInfoProvider.SetPollInfo(poll);
}
Making a global poll available on a site
// Gets the global poll. The . prefix in the code name parameter specifies a global poll.
PollInfo poll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (poll != null)
{
    // Assigns the global poll to the current site
    PollSiteInfoProvider.AddPollToSite(poll.PollID, SiteContext.CurrentSiteID);
}
Removing a global poll from a site
// Gets the global poll. The . prefix in the code name parameter specifies a global poll.
PollInfo poll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (poll != null)
{
    // Removes the global poll from the current site
    PollSiteInfoProvider.RemovePollFromSite(poll.PollID, SiteContext.CurrentSiteID);
}
Deleting a poll
// Gets the poll
// In this case, the poll is global. The . prefix in the code name parameter specifies a global poll.
PollInfo deletePoll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (deletePoll != null)
{
    // Deletes the poll
    PollInfoProvider.DeletePollInfo(deletePoll);
}
Poll answers
Adding answers to a poll
// Gets the poll
// In this case, the poll is global. The . prefix in the code name parameter specifies a global poll.
PollInfo poll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (poll != null)
{
    // Creates a new answer object
    PollAnswerInfo newAnswer = new PollAnswerInfo();
    // Sets the answer properties and assigns the answer to the specified poll
    newAnswer.AnswerPollID = poll.PollID;
    newAnswer.AnswerText = "My favorite color is blue.";
    newAnswer.AnswerEnabled = true;
    newAnswer.AnswerCount = 0;
    // Saves the poll answer to the database
    PollAnswerInfoProvider.SetPollAnswerInfo(newAnswer);
}
Updating poll answers
// Gets the poll
// In this case, the poll is global. The . prefix in the code name parameter specifies a global poll.
PollInfo poll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (poll != null)
{
    // Gets the poll's answers
    var answers = PollAnswerInfoProvider.GetPollAnswers().WhereEquals("AnswerPollID", poll.PollID);
    // Loops through individual poll answers
    foreach (var answer in answers)
    {
        // Updates the answer properties
        answer.AnswerText = answer.AnswerText.ToUpper();
        // Saves the updated poll answer to the database
        PollAnswerInfoProvider.SetPollAnswerInfo(answer);
    }
}
Deleting poll answers
// Gets the poll
// In this case, the poll is global. The . prefix in the code name parameter specifies a global poll.
PollInfo poll = PollInfoProvider.GetPollInfo(".ColorPoll", 0);
if (poll != null)
{
    // Gets the poll's first answer
    var deleteAnswer = PollAnswerInfoProvider.GetPollAnswers()
                                             .WhereEquals("AnswerPollID", poll.PollID)
                                             .TopN(1)
                                             .FirstObject;
    if (deleteAnswer != null)
    {                   
        // Deletes the poll answer
        PollAnswerInfoProvider.DeletePollAnswerInfo(deleteAnswer);
    }
}