Trabajando con la Opción de Votación Usando MapiMessage

Creando Opción de Votación Usando MapiMessage

Microsoft Outlook permite a los usuarios crear una encuesta al redactar un nuevo mensaje. Les permite incluir opciones de votación como Sí, No, Quizás, etc. Aspose.Email permite lo mismo al crear un nuevo mensaje de Outlook. La clase FollowUpOptions proporciona la propiedad VotingButtons que se puede usar para establecer o obtener el valor de las opciones de votación. Este artículo proporciona un ejemplo detallado de cómo crear un MapiMessage con opciones de votación para crear una encuesta.

Leyendo Opciones de Votación desde un MapiMessage

El siguiente fragmento de código muestra cómo leer opciones de votación desde un 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();

Leyendo Solo Botones de Votación

El siguiente fragmento de código muestra cómo leer solo botones de votación.

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);

Agregando un botón de votación a un Mensaje Existente

El siguiente fragmento de código muestra cómo agregar un botón de votación a un mensaje 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");

Eliminando un botón de votación de un Mensaje

El siguiente fragmento de código muestra cómo eliminar un botón de votación de un mensaje.

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");

Leer la Información de Resultados de Votación

El siguiente fragmento de código muestra cómo leer la información de los resultados de la votación.

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();
}
}