static void Main(string[] args) { // Grab configuration var dynamicsHost = ConfigurationManager.AppSettings["DynamicsHost"].ToString(); var dynamicsUsername = ConfigurationManager.AppSettings["DynamicsUsername"].ToString(); var dynamicsPassword = ConfigurationManager.AppSettings["DynamicsPassword"].ToString(); var govdeliveryHost = ConfigurationManager.AppSettings["GovDeliveryHost"].ToString(); var govdeliveryKey = ConfigurationManager.AppSettings["GovDeliveryKey"].ToString(); var dynamics = new DynamicsClient(dynamicsHost, dynamicsUsername, dynamicsPassword); var hub = new HubClient(govdeliveryHost, govdeliveryKey, dynamics); // Initialize connection information for hub hub.RetrieveConnectors().Wait(); // Ensure that dynamics is properly setup for our use case dynamics.EnsureGovdeliveryPublisher(); dynamics.EnsureEmailGovdeliveryField(); dynamics.EnsureEmailMetadata(); // Retrieve and send emails that are in "Pending Send" var emails = dynamics.RetrievePendingEmails(hub.GetEmailForPolling()); hub.SendEmails(emails).Wait(); // Push analytics data back into dynamics hub.UpdateEmailStatuses().Wait(); }
public void TestRetrieveConnectorsWithDynamicsEmailConnector() { var fakeResponseHandler = new FakeHttpMessageHandler(connectorResponse("Connectors::DynamicsEmail")); var fakeHttpClient = new HttpClient(fakeResponseHandler); fakeHttpClient.BaseAddress = new Uri("https://blah.test.com"); var mockClient = new Mock<IDynamicsClient>(); var hubClient = new HubClient("https://blah.test.com", "blah", mockClient.Object); var hubConnection = hubClient.GetType().GetField("connection", BindingFlags.NonPublic | BindingFlags.Instance); hubConnection.SetValue(hubClient, fakeHttpClient); hubClient.RetrieveConnectors().Wait(); var dynamicsValue = getPrivateValue(typeof(HubClient), hubClient, "dynamics"); Assert.IsNotNull(dynamicsValue); }