public void Drop(IResource targetResource, IDataObject data, DragDropEffects allowedEffect, int keyState) { if (data.GetDataPresent(typeof(IResourceList))) // Dragging resources over { // The resources we're dragging IResourceList dragResources = (IResourceList)data.GetData(typeof(IResourceList)); if (targetResource != null && dragResources != null && dragResources.Count > 0) { if (ListOfMailsOrLinkedAttachments(dragResources)) { IResourceList mailsOnly = ResourceTypeHelper.ExtractListForType(dragResources, STR.Email); _moveAction.DoMove(targetResource, mailsOnly); } else if (dragResources.AllResourcesOfType(STR.MAPIFolder)) { _moveFolderAction.DoMove(targetResource, dragResources); } } } }
public override void UndeleteResource(IResource res) { Guard.NullArgument(res, "res"); IResourceList attachments = res.GetLinksOfType(null, PROP.Attachment); foreach (IResource attachment in attachments.ValidResources) { attachment.SetProp(Core.Props.IsDeleted, false); } IResource folder = null; MAPIIDs IDs = OutlookSession.GetInboxIDs(); if (IDs != null) { folder = Folder.Find(IDs.EntryID); } if (folder != null) { MoveMessageToFolderAction action = new MoveMessageToFolderAction(false); action.DoMove(folder, res.ToResourceList()); } }