List <EntityVersion <string, DateTime> > IQueryOutlookContactItemFolderStrategy.QueryContactItemFolder(IOutlookSession session, Folder folder, string expectedFolderId, string filter) { var contacts = new List <EntityVersion <string, DateTime> > (); using (var tableWrapper = GenericComObjectWrapper.Create(folder.GetTable(filter))) { var table = tableWrapper.Inner; table.Columns.RemoveAll(); table.Columns.Add(c_entryIdColumnName); var storeId = folder.StoreID; while (!table.EndOfTable) { var row = table.GetNextRow(); var entryId = (string)row[c_entryIdColumnName]; var contact = session.GetContactItemOrNull(entryId, expectedFolderId, storeId); if (contact != null) { using (var contactWrapper = GenericComObjectWrapper.Create(contact)) { contacts.Add(new EntityVersion <string, DateTime> (contactWrapper.Inner.EntryID, contactWrapper.Inner.LastModificationTime)); } } } } return(contacts); }
public Task <IEnumerable <EntityVersion <string, DateTime> > > GetVersions(IEnumerable <IdWithAwarenessLevel <string> > idsOfEntitiesToQuery, Tcontext context, IGetVersionsLogger logger) { return(Task.FromResult <IEnumerable <EntityVersion <string, DateTime> > >( idsOfEntitiesToQuery .Select(id => _session.GetContactItemOrNull(id.Id, _folderId, _folderStoreId)) .Where(e => e != null) .ToSafeEnumerable() .Select(c => EntityVersion.Create(c.EntryID, c.LastModificationTime.ToUniversalTime())) .ToList())); }