public ActionResult Index(int? page, string email, string name) { ExchangeService service = Connection.ConnectEWS(); FolderView fv = new FolderView(50); SearchFilter folderSearch = new SearchFilter.ContainsSubstring(FolderSchema.DisplayName, email.ToLower()); var findFoldersResults = service.FindFolders(WellKnownFolderName.Inbox, folderSearch, fv); Folder targetFolder = null; foreach (Folder folder in findFoldersResults) { if (folder.DisplayName.ToLower() == email.ToLower()) { targetFolder = folder; } } //Define ViewBag.email: ViewBag.email = email; ViewBag.emailnq = email.Split('@')[0]; ViewBag.name = name; //Create empty list for all mailbox messages: var listing = new List<EmailMessage>(); //Create ItemView with correct pagesize and offset: ItemView view = new ItemView(int.MaxValue, Connection.ExOffset, OffsetBasePoint.Beginning); view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Subject, EmailMessageSchema.DateTimeReceived, EmailMessageSchema.From ); view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending); FindItemsResults<Item> findResults = service.FindItems(targetFolder.Id, view); //bool MoreItems = true; //while(MoreItems) //{ foreach (EmailMessage it in findResults.Items) { listing.Add(it); } //} int pageSize = Connection.ExPageSize; int pageNumber = (page ?? 1); //return View(listing.ToPagedList<EmailMessage>(pageNumber, pageSize)); return View(listing.ToList<EmailMessage>()); }
public static Folder GetGlobalFolder(ExchangeService service) { FolderView fv = new FolderView(50); fv.PropertySet = new PropertySet(BasePropertySet.IdOnly, FolderSchema.DisplayName, FolderSchema.TotalCount); SearchFilter folderSearch = new SearchFilter.ContainsSubstring(FolderSchema.DisplayName, Parameters.GlobalSearchFolder); var findFoldersResults = service.FindFolders(WellKnownFolderName.SearchFolders, folderSearch, fv); Folder targetFolder = new Folder(service); foreach (Folder folder in findFoldersResults) { if (folder.DisplayName.ToLower() == Parameters.GlobalSearchFolder.ToLower()) { targetFolder = folder; } } return targetFolder; }