public void SerializeTest() { XmlSerializer serializer = new XmlSerializer(typeof(EmailBroadcast)); Order order = new EmailBroadcast() { DisplayName = "jt", EmailSubject = "test email message", SendTimeUTC = DateTime.UtcNow, TextBody = TextBody.FromText("This is a test email") }; StringBuilder sb = new StringBuilder(); TextWriter writer = new StringWriter(sb); serializer.Serialize(writer, order); writer.Close(); Assert.IsNotNull(sb); Assert.IsTrue(!string.IsNullOrEmpty(sb.ToString())); TextReader tr = new StringReader(sb.ToString()); object obj = serializer.Deserialize(tr); var deserializedMessage = obj as EmailBroadcast; Assert.IsTrue(deserializedMessage.DisplayName == "jt"); Assert.IsTrue(deserializedMessage.EmailSubject == "test email message"); var xml = deserializedMessage.ToXml(); }
public XDocument Parse(EmailBroadcast eb) { var xml = eb.ToXml(); Assert.IsNotNull(xml); XDocument xDoc = XDocument.Parse(xml); Assert.IsNotNull(xDoc); return xDoc; }
public void BuildXmlWithRequiredInput() { var eb = new EmailBroadcast(); eb.TextBody = TextBody.FromText("Required content"); eb.List = ContactList.FromText("requiredList.csv", "email\r\[email protected]"); Parse(eb); }
public static void Execute() { Console.WriteLine("Alert Solutions API Client SimpleDemo\n"); var attachments = new List<Attachment>(); attachments.Add(Attachment.FromFile("Files\\Attachment.txt")); var proofs = new List<string>(); proofs.Add("*****@*****.**"); // create an email broadcast and give it the desired values var eb = new EmailBroadcast(); eb.BillCode = "APIClient Demo"; eb.ProjectCode = "APIClient Demo"; eb.DisplayName = "AlertSolutions"; eb.EmailSubject = "Alert Solutions API Client Demo"; eb.EmailFrom = "*****@*****.**"; eb.EmailReplyTo = "*****@*****.**"; eb.TextBody = TextBody.FromFile("Files\\Email.txt"); // be sure to modify the ContactList.csv file so the email goes to your intended destinations eb.List = ContactList.FromFile("Files\\ContactList.csv"); eb.EmailHeader = "email"; eb.Attachments = attachments; eb.Proofs = proofs; // change these values to your API login var user = ""; var password = ""; var url = "http://weblaunch.blifax.com/postapi"; // create the client var client = new ApiClient(url, user, password); Console.WriteLine("\nPress any key to launch broadcast."); Console.ReadLine(); // launch the broadcast var response = client.LaunchBroadcast(eb); // test the response status (in case it could not connect or something went wrong while submitting) Console.WriteLine("Response Status: " + response.RequestResult); if (response.RequestResult == RequestResultType.Error) Console.WriteLine("Error: " + response.RequestErrorMessage); else Console.WriteLine("OrderID: " + response.OrderID); Console.WriteLine("\nPress any key to retrieve report... (best to wait a few seconds)"); Console.ReadLine(); // get more information about the order by asking for a report var report = client.GetOrderReport(response, ReportReturnType.XML); Console.WriteLine("Report: " + report.ReportData); Console.WriteLine("\nPress any key to exit..."); Console.ReadLine(); }
public void BuildXmlWithoutRequiredInput() { try { var eb = new EmailBroadcast(); var xml = eb.ToXml(); } catch (FormatException) { Assert.IsTrue(true); } }
public static void Execute() { Console.WriteLine("Alert Solutions API Client SimpleDemo\n"); var attachments = new List<Attachment>(); attachments.Add(Attachment.FromFile("Files\\Attachment.txt")); var proofs = new List<string>(); proofs.Add("*****@*****.**"); // create an email broadcast and give it the desired values var eb = new EmailBroadcast(); eb.BillCode = "APIClient Demo"; eb.ProjectCode = "APIClient Demo"; eb.DisplayName = "AlertSolutions"; eb.EmailSubject = "Alert Solutions API Client Demo"; eb.EmailFrom = "*****@*****.**"; eb.EmailReplyTo = "*****@*****.**"; eb.TextBody = TextBody.FromFile("Files\\Email.txt"); // be sure to modify the ContactList.csv file so the email goes to your intended destinations eb.List = ContactList.FromFile("Files\\ContactList.csv"); eb.EmailHeader = "email"; eb.Attachments = attachments; eb.Proofs = proofs; // change these values to your API login var user = "******"; var password = "******"; var url = "http://weblaunch.blifax.com/postapi"; // create the client var client = new ApiClient(url, user, password); Console.WriteLine("\nPress any key to launch broadcast."); Console.ReadLine(); // launch the broadcast var response = client.LaunchBroadcast(eb); Console.WriteLine("Response Status: " + response.RequestResult); if (response.RequestResult == RequestResultType.Error) Console.WriteLine("Error: " + response.RequestErrorMessage); else Console.WriteLine("OrderID: " + response.OrderID); Console.WriteLine("\nPress any key to cancel broadcast."); Console.ReadLine(); var cancelResponse = client.CancelOrder(response); Console.WriteLine("\n\n"+ cancelResponse); }
public static IOrder CreateEB() { var f = System.IO.File.ReadAllBytes("testfiles\\report-card-sample.pdf"); var b = Convert.ToBase64String(f); var eb = new EmailBroadcast(); eb.BillCode = "PostAPIClient Refactor Test"; eb.ProjectCode = "PostAPIClient Refactor Test"; eb.EmailSubject = "PostAPIClient Refactor Test (EB)"; eb.EmailReplyTo = "*****@*****.**"; eb.EmailFrom = "*****@*****.**"; eb.DisplayName = "JThomas from AlertSolutions"; //eb.Attachments = new List<Attachment>() { Attachment.FromBase64String("file.pdf",b) }; eb.Attachments = new List<Attachment>() { Attachment.FromText("file.txt", "This is a test message attachment.") }; eb.TextBody = TextBody.FromFile("TestFiles\\Email.txt"); eb.HtmlBody = HtmlBody.FromFile("TestFiles\\Email.html"); eb.List = ContactList.FromFile("TestFiles\\ContactList.csv"); eb.EmailHeader = "email"; eb.Proofs = new List<string>() { "*****@*****.**" }; return eb; }
public static void Execute() { Console.WriteLine("Alert Solutions API Client FullDemo\n"); // =========================================== // BROADCASTS // =========================================== List<IBroadcast> broadcasts = new List<IBroadcast>(); // EMAIL BROADCAST var eb = new EmailBroadcast(); eb.BillCode = "APIClient Demo"; eb.ProjectCode = "APIClient Demo"; eb.DisplayName = "AlertSolutions"; eb.EmailSubject = "Alert Solutions API Client Demo"; eb.EmailFrom = "*****@*****.**"; eb.EmailReplyTo = "*****@*****.**"; eb.Attachments = new List<Attachment>() { Attachment.FromFile("Files\\Attachment.txt") }; eb.List = ContactList.FromFile("Files\\ContactList.csv"); eb.EmailHeader = "email"; eb.Proofs = new List<string>() { "*****@*****.**" }; // can use either Text or HTML eb.HtmlBody = HtmlBody.FromFile("Files\\Email.html"); eb.TextBody = TextBody.FromFile("Files\\Email.txt"); broadcasts.Add(eb); // SMS BROADCAST var sb = new SMSBroadcast(); sb.BillCode = "APIClient Demo"; sb.ProjectCode = "APIClient Demo"; sb.ShortCode = "77811"; sb.TextMessage = TextMessage.FromFile("Files\\TextMessage.txt"); sb.List = ContactList.FromFile("Files\\ContactList.csv"); sb.SMSHeader = "phone"; sb.Proofs = new List<string>() { "5555555555" }; broadcasts.Add(sb); // VOICE BROADCAST var vb = new VoiceBroadcast(); vb.BillCode = "APIClient Demo"; vb.ProjectCode = "APIClient Demo"; vb.CallerID = "5555555555"; vb.List = ContactList.FromFile("Files\\ContactList.csv"); vb.VoiceHeader = "phone"; vb.ThrottleType = VoiceBroadcast.VoiceThrottleType.MaximumCalls; vb.ThrottleNumber = 2; // can be told to load an xml file, or be given the xml as text //vt.CallScript = CallScript.FromString(""); //vt.CallScript = CallScript.FromFile(""); vb.Documents = new List<Document>() { //VoiceDocument.FromFile("Files\\VoiceMessage.txt", VoiceDocumentType.Live), VoiceDocument.FromFile("Files\\VoiceMessage.txt", VoiceDocumentType.Message), }; broadcasts.Add(vb); // FAX BROADCAST var fb = new FaxBroadcast(); fb.BillCode = "APIClient Demo"; fb.ProjectCode = "APIClient Demo"; fb.FaxFrom = "john doe"; fb.List = ContactList.FromFile("Files\\FaxList.csv"); fb.FaxHeader = "faxnumber"; fb.Dedup = true; fb.DocumentStyle = "Letter"; fb.Documents = new List<Document>() { Document.FromFile("Files\\FaxText.txt"), }; broadcasts.Add(fb); // =========================================== // MESSAGES // =========================================== List<IMessage> messages = new List<IMessage>(); // EMAIL MESSAGE var em = new EmailMessage(); em.EmailTo = "*****@*****.**"; em.DisplayName = "AlertSolutions"; em.EmailSubject = "Alert Solutions API Client Demo"; em.EmailFrom = "*****@*****.**"; em.EmailReplyTo = "*****@*****.**"; em.Attachments = new List<Attachment>() { Attachment.FromFile("Files\\Attachment.txt") }; // can use either Text or HTML em.TextBody = TextBody.FromFile("Files\\Email.txt"); //em.EmailBody = HtmlBody.FromFile("Files\\Email.html"); messages.Add(em); // SMS MESSAGE var sm = new SMSMessage(); sm.Number = "5555555555"; sm.ShortCode = "77811"; // shared Alert Solutions Shortcode sm.TextMessage = TextMessage.FromFile("Files\\TextMessage.txt"); messages.Add(sm); // VOICE MESSAGE var vm = new VoiceMessage(); //vt.CallScript = CallScript.FromString(""); //vt.CallScript = CallScript.FromFile(""); vm.Phone = "5555555555"; vm.CallerID = "5555555555"; vm.Documents = new List<Document>() { VoiceDocument.FromFile("Files\\VoiceMessage.txt", VoiceDocumentType.Live), VoiceDocument.FromFile("Files\\VoiceMessage.txt", VoiceDocumentType.Message), }; messages.Add(vm); // FAX MESSAGE var fm = new FaxMessage(); fm.FaxFrom = "john doe"; fm.FaxNumber = "4014271405"; fm.DocumentStyle = "Letter"; fm.Documents = new List<Document>() { Document.FromFile("Files\\FaxText.txt"), }; messages.Add(fm); // =========================================== // LAUNCH // =========================================== // change these values to your API login var user = "******"; var password = "******"; var url = "http://weblaunch.blifax.com/postapi"; // create the client var client = new ApiClient(url, user, password); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("There is a pause of about 10 seconds before getting a report."); Console.ForegroundColor = ConsoleColor.Gray; // launch the broadcasts foreach (var broadcast in broadcasts) { Console.Write("\n\nSending " + broadcast.TypeOfOrder + ": "); var response = client.LaunchBroadcast(broadcast); Console.Write("** " + response.RequestResult + " **"); Console.Write(response.RequestResult != RequestResultType.Error ? " OrderID: " + response.OrderID : "Error: " + response.RequestErrorMessage); // wait for broadcast before request report System.Threading.Thread.Sleep(12000); var report = client.GetOrderReport(response, ReportReturnType.XML); Console.Write("\nReport:\n" + report.ReportData); } // launch the messages foreach (var message in messages) { Console.Write("\n\nSending " + message.TypeOfOrder + ": "); var response = client.LaunchMessage(message); Console.Write("** " + response.RequestResult + " **"); Console.Write(response.RequestResult != RequestResultType.Error ? " OrderID: " + response.OrderID + " TransID: " + response.Unqid : "Error: " + response.RequestErrorMessage); // wait for message before request report System.Threading.Thread.Sleep(10000); var report = client.GetOrderReport(response, ReportReturnType.XML); Console.Write("\nReport:\n" + report.ReportData); } Console.WriteLine("Press any key to exit..."); Console.ReadLine(); }
public void ConstructorTest() { var emailBroadcast = new EmailBroadcast(); Assert.IsNotNull(emailBroadcast); }
public void XmlOutputSetValuesTest() { var eb = new EmailBroadcast(); eb.AutoLaunch = false; eb.BillCode = "BC"; eb.DisplayName = "DN"; eb.EmailFrom = "EF"; eb.EmailHeader = "email"; eb.EmailReplyTo = "ERT"; eb.EmailSubject = "ES"; eb.HtmlBody = HtmlBody.FromText("Required content <b>html</b>"); eb.IsForward = true; eb.IsReplaceLink = true; eb.IsUnsubscribe = true; eb.LanguageHeader = "Dutch"; eb.List = ContactList.FromText("requiredList.csv", "email\r\[email protected]"); eb.NumberOfRedials = 3; eb.NumberOfResends = 2; eb.ProjectCode = "PC"; eb.Proofs = new List<string>(); eb.ResendInterval = "4"; eb.SendTimeUTC = new DateTime(2010, 10, 12, 16, 15, 35); eb.TextBody = TextBody.FromText("Required content plaintext"); var xDoc = Parse(eb); VerifyFieldsExist(xDoc); // make sure the VALUES match what was set above var orderTag = xDoc.Root.Elements("Order").FirstOrDefault(); Assert.IsTrue(orderTag.FirstAttribute.Value == "EB"); Assert.IsTrue(orderTag.Element("AutoLaunch").Value == "No"); Assert.IsTrue(orderTag.Element("BillCode").Value == "BC"); Assert.IsTrue(orderTag.Element("Project").Value == "PC"); Assert.IsTrue(orderTag.Element("DisplayName").Value == "DN"); Assert.IsTrue(orderTag.Element("Date").Value == "2010-10-12"); Assert.IsTrue(orderTag.Element("Time").Value == "16:15"); Assert.IsTrue(orderTag.Element("From").Value == "EF"); Assert.IsTrue(orderTag.Element("ReplyTo").Value == "ERT"); Assert.IsTrue(orderTag.Element("Subject").Value == "ES"); Assert.IsTrue(orderTag.Element("Forward").Value == "Yes"); Assert.IsTrue(orderTag.Element("ReplaceLink").Value == "Yes"); Assert.IsTrue(orderTag.Element("Unsubscribe").Value == "Yes"); Assert.IsTrue(orderTag.Element("LanguageHeader").Value == "Dutch"); Assert.IsTrue(orderTag.Element("NumberOfRedials").Value == "3"); Assert.IsTrue(orderTag.Element("NumberOfResends").Value == "2"); // TODO : make tests for these conditional fields and their output // conditionals Assert.IsTrue(orderTag.Element("ResendInterval").Value == "4"); Assert.IsTrue(orderTag.Element("ListID").Value == ""); Assert.IsTrue(orderTag.Element("ListName").Value == "requiredList.csv"); Assert.IsTrue(Encoding.UTF8.GetString(Convert.FromBase64String(orderTag.Element("ListBinary").Value)) == "email\r\[email protected]"); Assert.IsTrue(orderTag.Element("EmailField").Value == "email"); // header <- what happens when not set? // documents Assert.IsTrue(orderTag.Element("HtmlID").Value == ""); Assert.IsNotNull(orderTag.Element("HtmlFile").Value); Assert.IsTrue(Encoding.UTF8.GetString(Convert.FromBase64String(orderTag.Element("HtmlBinary").Value)) == "Required content <b>html</b>"); Assert.IsTrue(orderTag.Element("TextID").Value == ""); Assert.IsNotNull(orderTag.Element("TextFile").Value); Assert.IsTrue(Encoding.UTF8.GetString(Convert.FromBase64String(orderTag.Element("TextBinary").Value)) == "Required content plaintext"); }
public void XmlOutputProofTest() { var eb = new EmailBroadcast(); eb.TextBody = TextBody.FromText("required content"); eb.List = ContactList.FromText("requiredList.csv", "email\r\[email protected]"); eb.Proofs = new List<string>() { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" }; var xml = eb.ToXml(); XDocument xDoc = XDocument.Parse(xml); var orderTag = xDoc.Root.Elements("Order").FirstOrDefault(); var proofs = orderTag.Element("Proofs").Elements().ToList(); Assert.IsTrue(orderTag.Element("Proofs").Elements().Count() == 5); Assert.IsTrue(proofs[0].Value == "*****@*****.**"); Assert.IsTrue(proofs[1].Value == "*****@*****.**"); Assert.IsTrue(proofs[2].Value == "*****@*****.**"); Assert.IsTrue(proofs[3].Value == "*****@*****.**"); Assert.IsTrue(proofs[4].Value == "*****@*****.**"); // overloading the amount of allowable proofs eb.Proofs.Add("*****@*****.**"); xml = eb.ToXml(); xDoc = XDocument.Parse(xml); orderTag = xDoc.Root.Elements("Order").FirstOrDefault(); Assert.IsTrue(orderTag.Element("Proofs").Elements().Count() == 6); }
public void XmlOutputDefaultValuesTest() { var eb = new EmailBroadcast(); eb.TextBody = TextBody.FromText("Required content"); eb.List = ContactList.FromText("requiredList.csv", "email\r\[email protected]"); var xDoc = Parse(eb); VerifyFieldsExist(xDoc); var orderTag = xDoc.Root.Elements("Order").FirstOrDefault(); Assert.IsTrue(orderTag.Element("AutoLaunch").Value == "Yes"); //TODO : finish the rest of the default fields }
public void XmlOutputAttachmentTest() { var eb = new EmailBroadcast(); eb.TextBody = TextBody.FromText("required content"); eb.List = ContactList.FromText("requiredList.csv", "email\r\[email protected]"); eb.Attachments = new List<Attachment>() { Attachment.FromText("file1.txt", "content #1"), Attachment.FromText("file2.txt", "content #2"), Attachment.FromText("file3.txt", "content #3") }; var xml = eb.ToXml(); XDocument xDoc = XDocument.Parse(xml); var orderTag = xDoc.Root.Element("Order"); var attachmentsTag = orderTag.Element("Attachments"); Assert.IsNotNull(attachmentsTag); Assert.IsTrue(attachmentsTag.Elements().Count() == 3); var attachmentTag1 = attachmentsTag.Elements().ToList()[0]; Assert.IsNotNull(attachmentTag1.Element("AttachmentID")); Assert.IsTrue(attachmentTag1.Element("AttachmentName").Value == "file1.txt"); var value = attachmentTag1.Element("AttachmentBinary").Value; Assert.IsTrue(attachmentTag1.Element("AttachmentBinary").Value == Convert.ToBase64String(Encoding.UTF8.GetBytes("content #1"))); var attachmentTag2 = attachmentsTag.Elements().ToList()[1]; Assert.IsNotNull(attachmentTag2.Element("AttachmentID")); Assert.IsTrue(attachmentTag2.Element("AttachmentName").Value == "file2.txt"); Assert.IsTrue(attachmentTag2.Element("AttachmentBinary").Value == Convert.ToBase64String(Encoding.UTF8.GetBytes("content #2"))); var attachmentTag3 = attachmentsTag.Elements().ToList()[2]; Assert.IsNotNull(attachmentTag3.Element("AttachmentID")); Assert.IsTrue(attachmentTag3.Element("AttachmentName").Value == "file3.txt"); Assert.IsTrue(attachmentTag3.Element("AttachmentBinary").Value == Convert.ToBase64String(Encoding.UTF8.GetBytes("content #3"))); }