0

基本上,我在 Office 365 中的知识水平处于初级水平。

我正在尝试通过 .Net Office 365 API 调用从 Office 365 中提取约会并将其显示在 Windows 应用程序网格中。

我正在使用代码(如下)来拉约会;我从网上收集了代码...

我已经成功直到认证部分。我可以查看身份验证成功消息和 Office 365 日历属性等FromTimeLocation但我无法接收数据。它返回System.Nullable DateTime Exception

namespace GetCal
{
    public class CalendarAPISample
    {
        const string ExchangeResourceId = "https://outlook.office365.com";
        const string ExchangeServiceRoot = "https://outlook.office365.com/ews/odata";

        public static async Task<IOrderedEnumerable<IEvent>> GetCalendarEvents()
        {
            var client = await EnsureClientCreated();
            string fromdate = "01/01/2014";
            DateTime datet = Convert.ToDateTime(fromdate);

            // Obtain calendar event data
            var eventsResults = await(from i in client.Me.Events
                                       where i.End >= datet //DateTimeOffset.UtcNow
                                  select i).Take(10).ExecuteAsync();

            var events = eventsResults.CurrentPage.OrderBy(e => e.Start);
            //return events.ToList().ConvertAll(new Converter(ent => ent));
            return events;
        }

        private static async Task<ExchangeClient> EnsureClientCreated()
        {
            Authenticator authenticator = new Authenticator();
            var  authInfo = await authenticator.AuthenticateAsync(ExchangeResourceId);

            return new ExchangeClient(new Uri(ExchangeServiceRoot), authInfo.GetAccessToken);
        }

        public static async Task SignOut()
        {
            await new Authenticator().LogoutAsync();
        }

        public CalendarAPISample()
        {
            // TODO: Complete member initialization
            try
            {
                // call the authenticator
                var x = GetCalendarEvents();              

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

EVENTS对象中包含IEnumerable数据类型值。我想转换IEnumerableDataTable.

4

1 回答 1

0

您是否尝试过让您的 DateTime 可以为空?

在 DateTime 后面加上一个问号...

DateTime? datet = Convert.ToDateTime(fromdate);

http://www.dotnetperls.com/nullable-datetime

您还可以使用诸如 Fiddler 之类的程序来调查 Web 流量并查看响应中返回的内容(如果有的话)。

http://www.telerik.com/download/fiddler

于 2014-10-17T02:33:41.463 回答