/// <summary> /// This method deletes mail according to the parameter /// </summary> /// <param name="operation">parameters for MailDelete</param> /// <returns>true if processed successfully, false otherwise</returns> private bool MailDelete(MailSimOperationsMailDelete operation) { var parsedOp = ParseOperation(operation, operation.Folder, operation.Subject); return(parsedOp.Iterate((indexToDelete, mails) => { var item = mails[indexToDelete]; Log.Out(Log.Severity.Info, operation.OperationName, "Deleting email with subject: {0}", item.Subject); item.Delete(); mails.RemoveAt(indexToDelete); return true; })); }
/// <summary> /// This method deletes mail according to the parameter /// </summary> /// <param name="operation">parameters for MailDelete</param> /// <returns>true if processed successfully, false otherwise</returns> private bool MailDelete(MailSimOperationsMailDelete operation) { var parsedOp = ParseOperation(operation, operation.Folder, operation.Subject); return parsedOp.Iterate((indexToDelete, mails) => { var item = mails[indexToDelete]; Log.Out(Log.Severity.Info, operation.OperationName, "Deleting email with subject: \"{0}\"", item.Subject); item.Delete(); mails.RemoveAt(indexToDelete); return true; }); }
/// <summary> /// This method deletes mail according to the parameter /// </summary> /// <param name="operation">parameters for MailDelete</param> /// <returns>true if processed successfully, false otherwise</returns> private bool MailDelete(MailSimOperationsMailDelete operation) { int iterations = GetIterationCount(operation.Count); bool random = false; try { // Retrieves mails from Outlook var mails = GetMails(operation.OperationName, operation.Folder, operation.Subject).ToList(); if (mails.Any() == false) { Log.Out(Log.Severity.Error, operation.OperationName, "Skipping MailDelete"); return false; } // Randomly generate the number of emails to delete if (iterations == 0) { random = true; iterations = randomNum.Next(1, mails.Count + 1); Log.Out(Log.Severity.Info, operation.OperationName, "Randomly deleting {0} emails", iterations); } // we need to make sure we are not deleting more than what we have in the mailbox if (iterations > mails.Count) { Log.Out(Log.Severity.Warning, operation.OperationName, "Only {1} email(s) are in the folder, so the number of emails to delete is adjusted from {0} to {1}", iterations, mails.Count); iterations = mails.Count; } for (int count = 1; count <= iterations; count++) { Log.Out(Log.Severity.Info, operation.OperationName, "Starting iteration {0}", count); // just delete the email in order if random is not selected, // otherwise randomly pick the mail to delete int indexToDelete = random ? randomNum.Next(0, mails.Count) : mails.Count - 1; Log.Out(Log.Severity.Info, operation.OperationName, "Deleting email with subject: {0}", mails[indexToDelete].Subject); mails[indexToDelete].Delete(); mails.RemoveAt(indexToDelete); SleepOrStop(operation.OperationName, operation.Sleep); Log.Out(Log.Severity.Info, operation.OperationName, "Finished iteration {0}", count); } } catch (Exception ex) { Log.Out(Log.Severity.Error, operation.OperationName, "Exception encountered\n" + ex); return false; } return true; }