/// <summary> /// Method is moving item from one to another folder. /// </summary> /// <param name="item">Item to move.</param> /// <param name="destinationFolder">Destination folder.</param> /// <param name="moveOperation">Move operation (Copy or Move).</param> internal void MoveItem(Item item, Folder destinationFolder, MoveOperation moveOperation) { //Item itemToMove = Item.Bind(ewsSession, item.Id); switch (moveOperation) { case MoveOperation.Copy: item.Copy(destinationFolder.Id); break; case MoveOperation.Move: item.Move(destinationFolder.Id); break; } }
private bool Procesar(Item item) { bool respuesta = false; try { item.Load();//cargamos el resto del mensaje. MessageBody messageBody = item.Body;//obtenemos el Body del mensaje //DeleteMode.HardDelete Eliminamos completamente el item. //DeleteMode.MoveToDeletedItems Movemos el item a la carpeta de eliminados //DeleteMode.SoftDelete Depende de ExchangeVersion, pero principalmente permite la recuperacion del item despues de eliminado. if (item.HasAttachments)//si tiene adjuntos ProcesarAdjuntos(item); else if (item.Subject.ToLower().Contains("eliminar") || messageBody.Text.ToLower().Contains("eliminar")) // Revisamos si el asunto o en el body contiene la palabra "eliminar" { item.Delete(DeleteMode.HardDelete);//Eliminamos completamente el item. respuesta = true; Trace.TraceInformation("Item Eliminado."); } else if (item.Subject.ToLower().Contains("mover") || messageBody.Text.ToLower().Contains("mover")) // Revisamos si el asunto o en el body contiene la palabra "mover" { FolderId folderID = getFolderID("procesados"); if (folderID != null)//si encontramos la carpeta la { item.Move(folderID);//movemos el item. respuesta = true; Trace.TraceInformation("Item Movido."); } } else { item.Delete(DeleteMode.MoveToDeletedItems);//lo movemos a la papelera Trace.TraceInformation("Item Movido a carpeta Eliminados"); } } catch (Exception) { } return respuesta; }
private void ProcesarAdjuntos(Item item) { if (item.HasAttachments)//solo si tenemos adjuntos //obtenemos cada uno de los adjuntos contenidos en la collection Attachments foreach (Attachment adjunto in item.Attachments) { if (adjunto is FileAttachment)// si es un archivo adjunto { FileAttachment archivoAdjunto = adjunto as FileAttachment; // Load the attachment into a file. // This call results in a GetAttachment call to EWS. archivoAdjunto.Load("C:\\temp\\" + archivoAdjunto.Name); Trace.TraceInformation("nombre del archivo adjunto: " + archivoAdjunto.Name); } else // si es un item adjunto { ItemAttachment itemAdjunto = adjunto as ItemAttachment; //cargamos el adjunto en memoria. //esta llamada resulta en una llamada GetAttachment a EWS itemAdjunto.Load(); Trace.TraceInformation("nombre del item adjunto: " + itemAdjunto.Name); } FolderId folderID = getFolderID("procesados"); if (folderID != null)//si encontramos la carpeta la { item.Move(folderID);//movemos el item. Trace.TraceInformation("Item Movido."); } } }