This topic has not yet been rated - Rate this topic

Appointments.SearchAsync Method (DateTime, DateTime, Account, Object)

April 12, 2014

Asynchronously searches for appointments that occur between the specified start date and time and end date and time, from the specified data source.

Namespace:  Microsoft.Phone.UserData
Assembly:  Microsoft.Phone (in Microsoft.Phone.dll)
public void SearchAsync(
	DateTime startTimeInclusive,
	DateTime endTimeInclusive,
	Account account,
	Object state
)

Parameters

startTimeInclusive
Type: System.DateTime
The start date and time to use to search for appointments.
endTimeInclusive
Type: System.DateTime
The end date and time to use to search for appointments.
account
Type: Microsoft.Phone.UserData.Account
The data source to search for appointments.
state
Type: System.Object
A user-defined object that contains information about the operation.

The maximum number of appointments that are returned is stored in DefaultMaximumItems.

The state object is stored in the AppointmentsSearchEventArgs class and passed to the SearchCompleted delegate when the operation is complete.

Applications that use the Calendar APIs may fail to start. This can occur for applications that are upgraded from Windows Phone OS 7.0 to Windows Phone OS 7.1. To resolve this issue, open the file WMAppManifest.xml and add the following element.

<Capability Name="ID_CAP_APPOINTMENTS"/>

The following example assumes that you have a Windows Phone application that has a page with a button named SearchAppointments. The code assumes that you have a databound list box named AppointmentResultsData. In this example, you search for all appointments in the next seven days. For the full example, including the XAML, see How to access calendar data for Windows Phone 8.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Microsoft.Phone.Controls;
using Microsoft.Phone.UserData;

namespace ContactsAndCalendarTestApp
{
    public partial class AppointmentsPage : PhoneApplicationPage
    {
        public AppointmentsPage()
        {
            InitializeComponent();
        }


        private void SearchAppointments_Click(object sender, RoutedEventArgs e)
        {
            AppointmentResultsData.DataContext = null;
            Appointments appts = new Appointments();

            appts.SearchCompleted += new EventHandler<AppointmentsSearchEventArgs>(Appointments_SearchCompleted);

            DateTime start = new DateTime();
            start = DateTime.Now;
            //MessageBox.Show(start.ToLongDateString());

            DateTime end = new DateTime();
            end = start.AddDays(7);
            //MessageBox.Show(end.ToLongDateString());

            foreach (Account acct in (new Appointments()).Accounts)
            {
                appts.SearchAsync(start, end, acct, "Appointments Test " + acct.Kind.ToString());
            }
        }


        void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
        {
            //MessageBox.Show(e.State.ToString());
            //MessageBox.Show(e.StartTimeInclusive.ToShortDateString());
            //MessageBox.Show(e.EndTimeInclusive.ToShortDateString());
        
            try
            {
                //Bind the results to the list box that displays them in the UI.
                AppointmentResultsData.DataContext = e.Results;
            }
            catch (System.Exception)
            {
                //That's okay, no results.
            }
        }
    }
}

Windows Phone OS

Supported in: 8.1, 8.0, 7.1

Windows Phone

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.