Trabalhando com Opções de Votação Usando MapiMessage

Criando Opções de Votação Usando MapiMessage

O Microsoft Outlook permite que os usuários criem uma enquete ao compor uma nova mensagem. Ele permite incluir opções de votação como Sim, Não, Talvez, etc. Aspose.Email permite o mesmo ao criar uma nova mensagem do Outlook. A classe FollowUpOptions fornece a propriedade VotingButtons que pode ser usada para definir ou obter o valor das opções de votação. Este artigo fornece um exemplo detalhado de como criar um MapiMessage com opções de votação para criar uma enquete.

Lendo Opções de Votação de um MapiMessage

O seguinte trecho de código mostra como ler opções de votação de um MapiMessage.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::SharedPtr<MapiMessage> message = MapiMessage::FromFile(fileName);
// This method can be useful when except voting buttons it is necessary to get other parameters (ex. a category)
System::SharedPtr<FollowUpOptions> options = FollowUpManager::GetOptions(message);
// Voting buttons will be introduced as a string with semi-column as a separator
System::String votingButtons = options->get_VotingButtons();

Lendo Apenas Botões de Votação

O seguinte trecho de código mostra como ler apenas os botões de votação.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::SharedPtr<MapiMessage> testMsg = MapiMessage::FromStream(ms);
// This method can be useful when it is necessary to read only voting buttons Voting buttons will be introduced as a collection of string values
System::ArrayPtr<System::String> buttons = FollowUpManager::GetVotingButtons(testMsg);

Adicionando um Botão de Votação a uma Mensagem Existente

O seguinte trecho de código mostra como adicionar um botão de votação a uma mensagem existente.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// The path to the File directory.
System::String dataDir = RunExamples::GetDataDir_Outlook();
System::SharedPtr<MapiMessage> mapi = MapiMessage::FromFile(dataDir + L"message.msg");
FollowUpManager::AddVotingButton(mapi, L"Indeed!");
mapi->Save(dataDir + L"AddVotingButtonToExistingMessage_out.msg");

Deletando um Botão de Votação de uma Mensagem

O seguinte trecho de código mostra como deletar um botão de votação de uma mensagem.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// The path to the File directory.
System::String dataDir = RunExamples::GetDataDir_Outlook();
// Create New Message and set FollowUpOptions, FollowUpManager properties
System::SharedPtr<MapiMessage> msg = CreateTestMessage(false);
System::SharedPtr<FollowUpOptions> options = System::MakeObject<FollowUpOptions>();
options->set_VotingButtons(L"Yes;No;Maybe;Exactly!");
FollowUpManager::SetOptions(msg, options);
msg->Save(dataDir + L"MapiMsgWithPoll.msg");
FollowUpManager::RemoveVotingButton(msg, L"Exactly!");
// Deleting a single button OR
FollowUpManager::ClearVotingButtons(msg);
// Deleting all buttons from a MapiMessage
msg->Save(dataDir + L"MapiMsgWithPoll.msg");

Lendo as Informações dos Resultados da Votação

O seguinte trecho de código mostra como ler as informações dos resultados da votação.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::SharedPtr<MapiMessage> msg = MapiMessage::FromFile(dataDir + L"AddVotingButtonToExistingMessage.msg");
{
auto recipient_enumerator = (msg->get_Recipients())->GetEnumerator();
decltype(recipient_enumerator->get_Current()) recipient;
while (recipient_enumerator->MoveNext() && (recipient = recipient_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String::Format(L"Recipient: {0}",recipient->get_DisplayName()));
// Get the PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE property
System::Console::WriteLine(System::String::Format(L"Response: {0}",recipient->get_Properties()->idx_get(MapiPropertyTag::PR_RECIPIENT_AUTORESPONSE_PROP_RESPONSE)->GetString()));
// Get the PR_RECIPIENT_TRACKSTATUS_TIME property
System::Console::WriteLine(System::String::Format(L"Response time: {0}",recipient->get_Properties()->idx_get(MapiPropertyTag::PR_RECIPIENT_TRACKSTATUS_TIME)->GetDateTime()));
System::Console::WriteLine();
}
}