/// <summary> /// Parses emails with attachments to create user stories in Rally if there are unread email messages in the "Inbox" folder /// </summary> /// <param name="rallyWorkspace"></param> /// <param name="rallyScrumTeam"></param> public void SyncUsingMimeKit(string rallyWorkspace, string rallyScrumTeam) { try { LoginToRally(); _toCreate[RALLY.WorkSpace] = rallyWorkspace; _toCreate[RALLY.Project] = rallyScrumTeam; using (_imapClient) { LoginToGmail(_imapClient); SetUpMailbox(_imapClient); if (_unreadMessages > 0) { Console.WriteLine("Syncing-" + _emailMessageIdsList.Count + " Messages"); foreach (UniqueId messageId in _emailMessageIdsList) { CreateUserStoryWithEmail(messageId); DownloadAttachments(_message); ProcessAttachments(); UploadAttachmentsToRallyUserStory(); PostSlackUserStoryNotification(); MoveMessagesToProcessedFolder(messageId); } Console.WriteLine("Synced-" + _emailMessageIdsList.Count + " Messages"); } else { Console.WriteLine("No Unread Messages Found"); } _imapClient.Disconnect(true); } } catch (IOException io) { Console.WriteLine(io.Message); } catch (ImapProtocolException imapProtocolException) { Console.WriteLine(imapProtocolException.Message); } catch (RallyUnavailableException rallyUnavailableException) { Console.WriteLine(rallyUnavailableException.Message); } catch (WebException webException) { Console.WriteLine(webException.Message); } finally { _rallyRestApi.Logout(); } }
public void AuthenticateWithRallyServer() { //Arrange RallyRestApi api = new RallyRestApi(); //Act if (api.AuthenticationState != RallyRestApi.AuthenticationResult.Authenticated) { api.Authenticate("*****@*****.**", "iYmcmb24", "https://rally1.rallydev.com", null, false); } //Assert Assert.AreEqual("Authenticated", api.AuthenticationState.ToString()); api.Logout(); Assert.AreEqual("NotAuthorized", api.AuthenticationState.ToString()); }