Quantcast
Channel: Exchange Server Development forum
Viewing all articles
Browse latest Browse all 7132

Adding retention tags to folder using EWS

$
0
0

Hi,

I am trying to add retention policies to user folders programatically, using EWS

I am taking one of the available retention tags and applying it to a custom Folder. Doing so, through code I can see that proper tag is getting applied (I am checking the value of extended property0x3019).  However, when I open outlook, select the custom folder and click onPolicy in ribbon under Folders tab, I don't see the retention tag applied. I even waited for few hours, but still tags didn't get applied.

Can someone please suggest, what might be going wrong here?

For reference, I have added the code snippet below. Thanks much for help.

           try

            {

               // parameters to handle pagination in folders

               Guid rGUID =Guid.NewGuid();

               int pageSize = 1000;

               int offset = 0;

               bool moreItems =true;

                bUserHasRecords =false;

                             

               

                logMessage ="Accessing user mailbox"+ userEmail +"......";

               Console.WriteLine("Accessing user mailbox "+ userEmail + "......");

                              

               // Set impersonated mailbox

               ImpersonatedUserId idIEMX =newImpersonatedUserId(ConnectingIdType.SmtpAddress, userEmail);

               this.serviceEWS.ImpersonatedUserId = idIEMX;

               

               GetUserRetentionPolicyTagsResponse rententionTags =this.serviceEWS.GetUserRetentionPolicyTags();

               foreach (RetentionPolicyTag retentionTag in rententionTags.RetentionPolicyTags)

                {

                   if (retentionTag.DisplayName.Equals("5 Year Delete",StringComparison.InvariantCultureIgnoreCase))

                       rGUID = retentionTag.RetentionId;                

                }

               ExtendedPropertyDefinition extendedPropertyRetentionTag =newExtendedPropertyDefinition(0x3019,Microsoft.Exchange.WebServices.Data.MapiPropertyType.Binary);

               // Get root folder handle

                Microsoft.Exchange.WebServices.Data.Folder rootfolder = null;

                rootfolder = Microsoft.Exchange.WebServices.Data.Folder.Bind(this.serviceEWS,WellKnownFolderName.MsgFolderRoot);

                rootfolder.Load();

               FolderView fv =newFolderView(pageSize, offset);

               // Search for deep folder traversals

                fv.Traversal =FolderTraversal.Deep;

                fv.PropertySet =newPropertySet(BasePropertySet.IdOnly,FolderSchema.DisplayName, extendedPropertyRetentionTag);

               while (moreItems)

                {

                   FindFoldersResults fr1 = rootfolder.FindFolders(fv);

                   // check if more items are available

                    moreItems = fr1.MoreAvailable;

                   if (moreItems)

                        fv.Offset += pageSize;

                   

                   //Loop through each folder

                   foreach (Microsoft.Exchange.WebServices.Data.Folder folder in fr1)

                    {

                        logMessage +="Accessing folder: "+ folder.DisplayName +"......";                   

                       

                        if (folder.DisplayName.Equals("Unfiled",StringComparison.InvariantCultureIgnoreCase))

                        {

                            folder.SetExtendedProperty(extendedPropertyRetentionTag, rGUID.ToByteArray());

                            folder.Update();

                        }

                    

                    }

                }               

            }

           catch (System.Exception ex)

            {

                logMessage += ex.ToString();

               Console.WriteLine(ex.ToString());

                logger.WriteMessage(logMessage);

            }

 

ashishshukla.1183


Viewing all articles
Browse latest Browse all 7132

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>