Aspose.Email.Examples.CSharp.Exchange.PagingSupportForListingMessages.Run C# (CSharp) Method

Run() static private method

static private Run ( ) : void
return void
        static void Run()
        {
            // ExStart: PagingSupportForListingMessages
            ///<summary>
            /// This example shows how to list messages from Exchange Server with Paging support
            /// Introduced in Aspose.Email for .NET 6.4.0
            /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage);
            /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage, int offset);
            /// ExchangeMessagePageInfo ListMessagesByPage(string folder, int itemsPerPage, int pageOffset, ExchangeListMessagesOptions options);
            /// ExchangeMessagePageInfo ListMessagesByPage(string folder, PageInfo pageInfo);
            /// ExchangeMessagePageInfo ListMessagesByPage(string folder, PageInfo pageInfo, ExchangeListMessagesOptions options);
            ///</summary>
            using (IEWSClient client = EWSClient.GetEWSClient("exchange.domain.com", "username", "password"))
            {
                try
                {
                    // Create some test messages to be added to server for retrieval later
                    int messagesNum = 12;
                    int itemsPerPage = 5;
                    MailMessage message = null;
                    for (int i = 0; i < messagesNum; i++)
                    {
                        message = new MailMessage(
                            "[email protected]",
                            "[email protected]",
                            "EMAILNET-35157_1 - " + Guid.NewGuid().ToString(),
                            "EMAILNET-35157 Move paging parameters to separate class");
                        client.AppendMessage(client.MailboxInfo.InboxUri, message);
                    }
                    // Verfiy that the messages have been added to the server
                    ExchangeMessageInfoCollection totalMessageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri);
                    Console.WriteLine(totalMessageInfoCol.Count);

                    ////////////////// RETREIVING THE MESSAGES USING PAGING SUPPORT ////////////////////////////////////

                    List<ExchangeMessagePageInfo> pages = new List<ExchangeMessagePageInfo>();
                    ExchangeMessagePageInfo pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage);
                    // Total Pages Count
                    Console.WriteLine(pageInfo.TotalCount);

                    pages.Add(pageInfo);
                    while (!pageInfo.LastPage)
                    {
                        pageInfo = client.ListMessagesByPage(client.MailboxInfo.InboxUri, itemsPerPage, pageInfo.PageOffset + 1);
                        pages.Add(pageInfo);
                    }
                    int retrievedItems = 0;
                    foreach (ExchangeMessagePageInfo pageCol in pages)
                        retrievedItems += pageCol.Items.Count;
                    // Verify total message count using paging
                    Console.WriteLine(retrievedItems);
                }
                finally
                {
                }
            }            
            // ExEnd: PagingSupportForListingMessages
        
        }
    }
PagingSupportForListingMessages