public static RightsManagedMessageItem ReBind(MessageItem item, OutboundConversionOptions options, bool acquireLicense) { Util.ThrowOnNullArgument(item, "item"); Util.ThrowOnNullArgument(options, "options"); StoreSession storeSession = item.Session ?? ((item.CoreItem.TopLevelItem != null) ? item.CoreItem.TopLevelItem.Session : null); if (storeSession == null) { throw new ArgumentException("Cannot use ReBind() for in-memory message.", "item"); } RightsManagedMessageItem.CheckSession(storeSession); if (!item.IsRestricted) { throw new ArgumentException("Only protected messages can be used for ReBind()"); } RightsManagedMessageItem result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { RightsManagedMessageItem rightsManagedMessageItem = new RightsManagedMessageItem(new CoreItemWrapper(item.CoreItem)); disposeGuard.Add <RightsManagedMessageItem>(rightsManagedMessageItem); rightsManagedMessageItem.Decode(options, acquireLicense); disposeGuard.Success(); rightsManagedMessageItem.originalItem = item; result = rightsManagedMessageItem; } return(result); }
public static RightsManagedMessageItem Bind(MailboxSession session, StoreId messageId, OutboundConversionOptions options, bool acquireLicense, ICollection <PropertyDefinition> propsToReturn) { Util.ThrowOnNullArgument(session, "session"); Util.ThrowOnNullArgument(messageId, "messageId"); Util.ThrowOnNullArgument(options, "options"); RightsManagedMessageItem.CheckSession(session); RightsManagedMessageItem rightsManagedMessageItem = null; using (DisposeGuard disposeGuard = default(DisposeGuard)) { rightsManagedMessageItem = ItemBuilder.ItemBind <RightsManagedMessageItem>(session, messageId, RightsManagedMessageItemSchema.Instance, propsToReturn); disposeGuard.Add <RightsManagedMessageItem>(rightsManagedMessageItem); rightsManagedMessageItem.Decode(options, acquireLicense); disposeGuard.Success(); } return(rightsManagedMessageItem); }