//private FolderTraversal GetSearchDepth(string sSearchDepth) //{ // FolderTraversal oFolderTraversal = FolderTraversal.Shallow; // switch (sSearchDepth) // { // case "Shallow": // oFolderTraversal = FolderTraversal.Shallow; // Shallow, Deep, SoftDeleted // break; // case "Deep": // oFolderTraversal = FolderTraversal.Deep; // Shallow, Deep, SoftDeleted // break; // case "SoftDeleted": // oFolderTraversal = FolderTraversal.SoftDeleted; // Shallow, Deep, SoftDeleted // break; // } // return oFolderTraversal; //} private void DisplayFindRetentionStampedFoldersInListView( ExchangeService oExchangeService, WellKnownFolderName oParentFolder, string sPolicy, ref ListView oListView) { oListView.Clear(); oListView.View = View.Details; oListView.GridLines = true; oListView.Columns.Add("Id", 200, HorizontalAlignment.Left); oListView.Columns.Add("FolderName", 250, HorizontalAlignment.Left); oListView.Columns.Add("Folder Path", 400, HorizontalAlignment.Left); oListView.Columns.Add("PR_POLICY_TAG", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_RETENTION_FLAGS", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_RETENTION_Period", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_IS_HIDDEN", 100, HorizontalAlignment.Left); oListView.Columns.Add("TotalCount", 100, HorizontalAlignment.Left); //GetUserRetentionPolicyTagsResponse oResponse = null; // oResponse = _ExchangeService.GetUserRetentionPolicyTags(); //FolderTraversal oFolderTraversal = GetSearchDepth(cmboSearchDepth.Text); FolderTraversal oFolderTraversal = FolderTraversal.Deep; this.Cursor = Cursors.WaitCursor; FindFoldersWithPolicyTag(_ExchangeService, oParentFolder, sPolicy, ref oLvRetionStampedFolders, oFolderTraversal); this.Cursor = Cursors.Default; }
public MainWindow() { InitializeComponent(); this.btnPointWay.Click += delegate { using (var ofd = new FolderBrowserDialog()) { if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { tView.Items.Add(FolderTraversal.CatalogInfo(ofd.SelectedPath)); } } }; this.tView.MouseDoubleClick += delegate { imageView.ItemsSource = FolderTraversal.GetFiles((string)(tView.SelectedItem as TreeViewItem).Tag); }; this.imageView.SelectionChanged += delegate { (imageView.SelectedItem as ImagePair)?.View(); }; }
static void FindFoldersWithPolicyTag(ExchangeService oExchangeService, WellKnownFolderName oParentFolder, string sPolicyTag, ref ListView oListView, FolderTraversal oFolderTraversal) { int pageSize = 5; int offset = 0; FolderView oFolderView = new FolderView(pageSize + 1, offset); //ItemView view = new ItemView(pageSize + 1, offset); PropertySet oPropertySet = new PropertySet(BasePropertySet.IdOnly); oPropertySet.Add(FolderSchema.DisplayName); oPropertySet.Add(FolderSchema.FolderClass); oPropertySet.Add(Prop_PR_POLICY_TAG); oPropertySet.Add(Prop_PR_RETENTION_FLAGS); oPropertySet.Add(Prop_PR_RETENTION_PERIOD); //oPropertySet.Add(Prop_PR_RETENTION_DATE); //oPropertySet.Add(Prop_PR_ARCHIVE_TAG); //oPropertySet.Add(Prop_PR_ARCHIVE_PERIOD); oPropertySet.Add(FolderSchema.TotalCount); oPropertySet.Add(Prop_PR_FOLDER_PATH); oPropertySet.Add(Prop_PR_IS_HIDDEN); oListView.Columns.Add("Id", 200, HorizontalAlignment.Left); oListView.Columns.Add("FolderName", 250, HorizontalAlignment.Left); oListView.Columns.Add("Folder Path", 400, HorizontalAlignment.Left); oListView.Columns.Add("PR_POLICY_TAG", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_RETENTION_FLAGS", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_RETENTION_Period", 100, HorizontalAlignment.Left); oListView.Columns.Add("PR_IS_HIDDEN", 100, HorizontalAlignment.Left); oListView.Columns.Add("TotalCount", 100, HorizontalAlignment.Left); oFolderView.PropertySet = oPropertySet; oFolderView.Traversal = oFolderTraversal; string sPath = string.Empty;; FindFoldersResults oFindFoldersResults = null; ListViewItem oListViewItem = null; bool moreItems = true; //FolderId anchorId = null; while (moreItems) { try { oExchangeService.ClientRequestId = Guid.NewGuid().ToString(); // Set a new GUID. oFindFoldersResults = oExchangeService.FindFolders(oParentFolder, oFolderView); moreItems = oFindFoldersResults.MoreAvailable; if (moreItems) { oFolderView.Offset += pageSize; } int displayCount = oFindFoldersResults.Folders.Count > pageSize ? pageSize : oFindFoldersResults.Folders.Count; string sPR_POLICY_TAG = string.Empty; string iPR_RETENTION_FLAGS = string.Empty; string iPR_RETENTION_PERIOD = string.Empty; //private static ExtendedPropertyDefinition Prop_PR_POLICY_TAG = new ExtendedPropertyDefinition(0x3019, MapiPropertyType.Binary); // PR_POLICY_TAG 0x3019 Data type: PtypBinary, 0x0102 //private static ExtendedPropertyDefinition Prop_PR_RETENTION_FLAGS = new ExtendedPropertyDefinition(0x301D, MapiPropertyType.Integer); // PR_RETENTION_FLAGS 0x301D //private static ExtendedPropertyDefinition Prop_PR_RETENTION_PERIOD = new ExtendedPropertyDefinition(0x301A, MapiPropertyType.Integer); // PR_RETENTION_PERIOD 0x301A for (int i = 0; i < displayCount; i++) { Folder oFolder = oFindFoldersResults.Folders[i]; //string sResult = EwsExtendedPropertyHelper.GetExtendedProp_Byte_AsString(oFolder, Prop_PR_POLICY_TAG); //sResult = EwsExtendedPropertyHelper.GetExtendedProp_Int_AsString(oFolder, Prop_PR_RETENTION_FLAGS); //sResult = EwsExtendedPropertyHelper.GetExtendedProp_Int_AsString(oFolder, Prop_PR_RETENTION_PERIOD); string sFrom = EwsExtendedPropertyHelper.GetExtendedProp_Byte_AsString(oFolder, Prop_PR_POLICY_TAG); if (sFrom == "") { sPR_POLICY_TAG = ""; } else { byte[] oFromBytes = System.Convert.FromBase64String(sFrom); Guid guidTemp = new Guid(oFromBytes); sPR_POLICY_TAG = guidTemp.ToString(); } string sPR_RETENTION_FLAGS = EwsExtendedPropertyHelper.GetExtendedProp_Int_AsString(oFolder, Prop_PR_RETENTION_FLAGS); string sPR_RETENTION_PERIOD = EwsExtendedPropertyHelper.GetExtendedProp_Int_AsString(oFolder, Prop_PR_RETENTION_PERIOD); if (sPR_POLICY_TAG != "") { Console.WriteLine("Folder: " + oFolder.DisplayName + " Policy: " + sPR_POLICY_TAG); } if (sPR_POLICY_TAG == sPolicyTag) { oListViewItem = oListView.Items.Add(oFolder.Id.ToString()); oListViewItem.SubItems.Add(oFolder.DisplayName); EwsFolderHelper.GetFolderPath(oFolder, ref sPath); oListViewItem.SubItems.Add(sPath); oListViewItem.SubItems.Add(sPR_POLICY_TAG); // Policy oListViewItem.SubItems.Add(sPR_RETENTION_FLAGS); oListViewItem.SubItems.Add(sPR_RETENTION_PERIOD); //oListViewItem.SubItems.Add(EwsExtendedPropertyHelper.GetExtendedProp_Byte_AsString(oFolder, Prop_PR_RETENTION_PERIOD).ToString()); oListViewItem.SubItems.Add(EwsExtendedPropertyHelper.GetExtendedProp_Bool_AsString(oFolder, Prop_PR_IS_HIDDEN).ToString()); oListViewItem.SubItems.Add(FolderSchema.TotalCount.ToString()); } } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error while paging results"); return; } } }