package com.aspose.email.examples.exchangeews;
import com.aspose.email.*;
import java.util.Arrays;
/**
* Created by hp on 1/27/2017.
*/
public class FilterTasksFromExchangeServerUsingEWS {
public static void main(String[] args) {
FilterTasksFromExchangeServerUsingEWS();
}
public static void FilterTasksFromExchangeServerUsingEWS()
{
//ExStart: FilterTasksFromExchangeServerUsingEWS
ExchangeQueryBuilder queryBuilder = null;
MailQuery query = null;
ExchangeTask fetchedTask = null;
ExchangeMessageInfoCollection messageInfoCol = null;
// Create instance of ExchangeClient class by giving credentials
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/exchangeews/exchange.asmx", "testUser", "pwd", "domain");
//Set timezone for tasks
client.setTimezoneId("Central Europe Standard Time");
//We use these status values for specifying in queries
Integer[] values = new Integer[] {ExchangeTaskStatus.Completed, ExchangeTaskStatus.Deferred,
ExchangeTaskStatus.InProgress, ExchangeTaskStatus.NotStarted, ExchangeTaskStatus.WaitingOnOthers};
messageInfoCol = client.listMessages(client.getMailboxInfo().getTasksUri());
//Now retrieve the tasks with specific statuses
for (int status : values)
{
queryBuilder = new ExchangeQueryBuilder();
queryBuilder.getTaskStatus().equals(status);
query = queryBuilder.getQuery();
messageInfoCol = client.listMessages(client.getMailboxInfo().getTasksUri(), query);
fetchedTask = client.fetchTask(messageInfoCol.get_Item(0).getUniqueUri());
}
//retrieve all other than specified
for (int status : values)
{
queryBuilder = new ExchangeQueryBuilder();
queryBuilder.getTaskStatus().notEquals((int)status);
query = queryBuilder.getQuery();
messageInfoCol = client.listMessages(client.getMailboxInfo().getTasksUri(), query);
}
//specifying multiple criterion
Integer[] selectedStatuses = new Integer[]
{
ExchangeTaskStatus.Completed,
ExchangeTaskStatus.InProgress
};
queryBuilder = new ExchangeQueryBuilder();
queryBuilder.getTaskStatus().in(Arrays.asList(selectedStatuses));
query = queryBuilder.getQuery();
messageInfoCol = client.listMessages(client.getMailboxInfo().getTasksUri(), query);
//list all those which are not in our specified statuses
queryBuilder = new ExchangeQueryBuilder();
queryBuilder.getTaskStatus().notIn(Arrays.asList(selectedStatuses));
query = queryBuilder.getQuery();
messageInfoCol = client.listMessages(client.getMailboxInfo().getTasksUri(), query);
//ExEnd: FilterTasksFromExchangeServerUsingEWS
}
}