public void Run() { string tempFolder = Path.Combine(Path.GetTempPath(), "Mail2WorkItem"); Directory.CreateDirectory(tempFolder); try { var picker = new MailPicker( this.logger, configuration.Pop3.Hostname, configuration.Pop3.Port, configuration.Pop3.UseSsl, configuration.Pop3.Username, configuration.Pop3.Password, tempFolder); var messages = picker.ReadAll(); if (messages.Count > 0) { var tfs = new TfsFacade( this.logger, new Uri(configuration.TFS.CollectionUrl), configuration.TFS.ProjectName, configuration.TFS.WorkItemType); foreach (var mail in messages) { int workItemId = tfs.AddWorkItem(mail); var model = PrepareConfirmationModel(tfs, mail, workItemId); SendConfirmation(mail.From, model); } //for } //if } catch (Exception e) { logger.UnexpectedError(e); } finally { logger.RemovingTemporaryFolder(tempFolder); Directory.Delete(tempFolder, true); }//try }