private string UpdatePayLoadTemplate(OnboardingInfo onboardingInfo) { JObject template = onboardingInfo.PayloadTemplate; foreach (var field in onboardingInfo.UserFields) { template.Property(field.Name).Value = field.Value; } return(template.ToString()); }
public void PostOnboardingInfoShouldValidate(OnboardingInfo onboarding, dynamic expectedResult) { //act var response = onboardingInfo.PostOnboardingInfo(onboarding); expectedResult = JsonConvert.SerializeObject(expectedResult); var actualResult = JsonConvert.SerializeObject(response.Result); //assert Assert.Equal(expectedResult, actualResult); }
private bool SendMail(OnboardingInfo onboardingInfo) { string body = onboardingInfo.PayloadTemplate; ListDictionary replacements = new ListDictionary(); foreach (var field in onboardingInfo.UserFields) { body = body.Replace("@" + field.Name + "@", field.Value); } MailAddress toMailAddress = null; var toAddress = Convert.ToString(onboardingInfo.DeliveryDestination, CultureInfo.InvariantCulture); if (toAddress.IsValidEmailAddress()) { toMailAddress = new MailAddress(toAddress); } else if (onboardingInfoSettings.FallbackToAddress.IsValidEmailAddress()) { toMailAddress = new MailAddress(onboardingInfoSettings.FallbackToAddress); } var fromAddress = new MailAddress(onboardingInfoSettings.FromAddress); var mailMessage = new MailMessage(fromAddress, toMailAddress) { Subject = onboardingInfoSettings.Subject, Body = !string.IsNullOrEmpty(body) ? body : onboardingInfoSettings.FallbackBodyMessage, IsBodyHtml = true }; SmtpClient client = new SmtpClient(onboardingInfoSettings.HostAddress, Convert.ToInt16(onboardingInfoSettings.PortNumber, CultureInfo.InvariantCulture)) { Credentials = new NetworkCredential(onboardingInfoSettings.UserName, onboardingInfoSettings.Password), EnableSsl = false, }; try { client.Send(mailMessage); return(true); } catch { return(false); } }
public async Task <dynamic> SendInformation(OnboardingInfo onboardingInfo) { //Check organization delivery method switch (onboardingInfo.DeliveryMethod) { case DeliveryMethod.Email: SendMail(onboardingInfo); break; case DeliveryMethod.Fax: break; case DeliveryMethod.WebApi: return(await PostData(onboardingInfo)); } return(null); }
private async Task <dynamic> PostData(OnboardingInfo onboardingInfo) { //Generate a template from the form data var updatedTemplate = UpdatePayLoadTemplate(onboardingInfo); var stringContent = new StringContent(JsonConvert.SerializeObject(updatedTemplate), Encoding.UTF8, "application/json"); var response = await httpClientService.PostAsync(onboardingInfo.DeliveryDestination, stringContent); if (response == null) { return(null); } response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject(JsonConvert.DeserializeObject(content).ToString())); }
/// <summary> /// returns onborading info /// </summary> /// <param name="onboardingInfoValues"></param> /// <returns></returns> private dynamic GetOnboardingInfo(dynamic onboardingInfoValues) { var onboardingInfo = new OnboardingInfo(); if (onboardingInfoValues != null) { List <UserField> userField = new List <UserField>(); foreach (var onboardingInfoValue in onboardingInfoValues.userFields) { var name = onboardingInfoValue.name; var value = onboardingInfoValue.value; userField.Add(new UserField { Name = name, Value = value }); } onboardingInfo = new OnboardingInfo { UserFields = userField }; } return(onboardingInfo); }
public Task <object> PostOnboardingInfo(OnboardingInfo onboardingInfo) { //Send the information based on delivery method return(SendInformation(onboardingInfo)); }