public void FreeBusyUrls() { Assert.AreEqual(FreeBusyTestUrl, FreeBusyUrl.GenerateUrl(ExchangeServer, Organization, OrgUnit)); Assert.AreEqual(FreeBusyFromDNUrl, FreeBusyUrl.GenerateUrlFromDN(ExchangeServer, LegacyDN)); Assert.AreEqual(AdminGroupUrl, FreeBusyUrl.GenerateAdminGroupUrl(ExchangeServer, AdminGroup)); ExchangeUserDict users = new ExchangeUserDict(); users.Add(User1Email, createFauxUser("User1", User1Email)); DateTimeRange range = new DateTimeRange(start, end); Assert.AreEqual(SingleUserFreeBusyUrl, FreeBusyUrl.GenerateFreeBusyLookupUrl(ExchangeServer, users, range, 15)); users.Add(User2Email, createFauxUser("User2", User2Email)); Assert.AreEqual(MultiUserFreeBusyUrl, FreeBusyUrl.GenerateFreeBusyLookupUrl(ExchangeServer, users, range, 15)); }
public void TestFastFreeBusyLookup() { _requestor.ValidMethod = Method.GET; _requestor.ResponseBody = getResponseXML("FreeBusyResponse.xml"); // These dates correspond to when the response XML was captured DateTime start = DateUtil.ParseDateToUtc("2007-12-25T01:46:50Z"); DateTime end = DateUtil.ParseDateToUtc("2008-01-08T01:42:50Z"); DateTimeRange range = new DateTimeRange(start, end); ExchangeUserDict users = new ExchangeUserDict(); users.Add(_user.Email, _user); Dictionary <ExchangeUser, FreeBusy> result = _webdav.LoadFreeBusy(exchangeServer, users, range); Assert.AreEqual(1, result.Count); FreeBusy fb = result[_user]; Assert.AreEqual(6, fb.All.Count); Assert.AreEqual(6, fb.Busy.Count); Assert.AreEqual(0, fb.OutOfOffice.Count); Assert.AreEqual(0, fb.Tentative.Count); //dumpFreeBusy(fb.Busy); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:00:00Z"), fb.Busy[0].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:30:00Z"), fb.Busy[0].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T20:30:00Z"), fb.Busy[1].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T21:00:00Z"), fb.Busy[1].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T17:30:00Z"), fb.Busy[2].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T18:00:00Z"), fb.Busy[2].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:00:00Z"), fb.Busy[3].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:30:00Z"), fb.Busy[3].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:00:00Z"), fb.All[0].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:30:00Z"), fb.All[0].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T20:30:00Z"), fb.All[1].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T21:00:00Z"), fb.All[1].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T17:30:00Z"), fb.All[2].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T18:00:00Z"), fb.All[2].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:00:00Z"), fb.All[3].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:30:00Z"), fb.All[3].End); }
public void TestFastFreeBusyLookup() { _requestor.ValidMethod = Method.GET; _requestor.ResponseBody = getResponseXML("FreeBusyResponse.xml"); // These dates correspond to when the response XML was captured DateTime start = DateUtil.ParseDateToUtc("2007-12-25T01:46:50Z"); DateTime end = DateUtil.ParseDateToUtc("2008-01-08T01:42:50Z"); DateTimeRange range = new DateTimeRange(start, end); ExchangeUserDict users = new ExchangeUserDict(); users.Add(_user.Email, _user); Dictionary<ExchangeUser, FreeBusy> result = _webdav.LoadFreeBusy(exchangeServer, users, range); Assert.AreEqual(1, result.Count); FreeBusy fb = result[_user]; Assert.AreEqual(6, fb.All.Count); Assert.AreEqual(6, fb.Busy.Count); Assert.AreEqual(0, fb.OutOfOffice.Count); Assert.AreEqual(0, fb.Tentative.Count); //dumpFreeBusy(fb.Busy); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:00:00Z"), fb.Busy[0].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:30:00Z"), fb.Busy[0].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T20:30:00Z"), fb.Busy[1].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T21:00:00Z"), fb.Busy[1].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T17:30:00Z"), fb.Busy[2].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T18:00:00Z"), fb.Busy[2].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:00:00Z"), fb.Busy[3].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:30:00Z"), fb.Busy[3].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:00:00Z"), fb.All[0].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T18:30:00Z"), fb.All[0].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T20:30:00Z"), fb.All[1].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-26T21:00:00Z"), fb.All[1].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T17:30:00Z"), fb.All[2].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T18:00:00Z"), fb.All[2].End); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:00:00Z"), fb.All[3].Start); Assert.AreEqual(DateUtil.ParseDateToUtc("2007-12-31T21:30:00Z"), fb.All[3].End); }
/// <summary> /// Returns the free busy times for the specified exchange users /// </summary> /// <param name="user">The user which free/busy blocks will be looked up for</param> /// <param name="window">The date range to do the lookup</param> /// <returns>FreeBusy data for user in the daterange</returns> public FreeBusy LookupFreeBusyTimes( ExchangeUser user, DateTimeRange window ) { ExchangeUserDict users = new ExchangeUserDict(); users.Add( user.Email, user ); Dictionary<ExchangeUser, FreeBusy> result = LookupFreeBusyTimes ( users, window ); return result[user]; }
private ExchangeUserDict CreateExchangeUserCollection( SearchResultCollection searchResults ) { ExchangeUserDict userCollection = new ExchangeUserDict(); if ( searchResults != null ) { /* For each result set in the result set */ foreach ( System.DirectoryServices.SearchResult result in searchResults ) { /* Extract the property collection and create a new exchange user with it * Add the new user to the result set and use the account name as the index for * the dictionary collection */ ResultPropertyCollection property = result.Properties; ExchangeUser user = new ExchangeUser( property ); if ( !user.IsValid ) { log.WarnFormat( "User '{0}' is invalid and will not be synchronized.", user.CommonName ); } else if ( userCollection.ContainsKey( user.Email.ToLower() ) ) { log.WarnFormat( "User '{0}' was returned multiple times in the LDAP query. " + "Only the first instance was added.", user.Email ); } else { userCollection.Add( user.Email.ToLower(), user ); log.InfoFormat("Found and added '{0}' as an ExchangeUser.", user.Email); } log.DebugFormat("LDAP object debug info: {0}", user); } } return userCollection; }