/// <summary> /// Send email to a target user with the mortgage calculation info. /// </summary> /// <param name="mortgageEntry"></param> /// <param name="email"></param> /// <returns></returns> public bool SendEmail(MortgageEntryViewModel mortgageEntry, string email) { var templateUrl = Path.Combine(HttpContext.Current.Server.MapPath("~/EmailTemplates"), "MortgageCalculationResults.cshtml"); var templateService = new TemplateService(); var emailBody = templateService.Parse(System.IO.File.ReadAllText(templateUrl), mortgageEntry, null, null); var message = new MailMessage(); message.To.Add(new MailAddress(email)); message.Subject = "Your Mortgage Calculation results!"; message.Body = emailBody; message.IsBodyHtml = true; try { using (var smtp = new SmtpClient()) { smtp.Send(message); } } catch (Exception e) { return(false); } return(true); }
public ActionResult SendMail(MortgageEntryViewModel mortgageEntry, string email) { var success = false; if (ModelState.IsValid) { success = _mortgageService.SendEmail(mortgageEntry, email); } return(new CustomJson(new CustomJsonModel { Success = success, Message = success ? _emailSent : _errorMessage }, JsonRequestBehavior.DenyGet)); }
public ActionResult AddCalculationEntry(MortgageEntryViewModel entry) { if (ModelState.IsValid) { var success = _mortgageService.SaveCalculationEntry(entry); if (success) { return(new CustomJson(new CustomJsonModel { Success = true, }, JsonRequestBehavior.DenyGet)); } } return(new CustomJson(new CustomJsonModel { Success = false, Message = _errorMessage }, JsonRequestBehavior.DenyGet)); }
public void Setup() { _mortgageEntry = new MortgageEntryViewModel() { InterestRate = 9, Amortization = 25, Amount = 250000, Created = DateTime.Now, Id = 1, MonthlyPayment = 2500, PaymentFrequency = "Monthly" }; _email = "*****@*****.**"; entryList = new List <MortgageEntry>(); entryList.Add(_mortgageEntry); mortageServiceMock = new Mock <IMortgageService>(); mortageServiceMock.Setup(service => service.SendEmail(_mortgageEntry, _email)).Returns(true); mortageServiceMock.Setup(service => service.SaveCalculationEntry(It.IsAny <MortgageEntry>())).Returns(true); mortageServiceMock.Setup(service => service.GetHistory()).Returns(entryList); }
public void It_Should_Get_Not_Successfull_Message_And_Response_When_Sent_Email_After_Bad_ViewModel_Data_Passed() { //Arrange var expectedResult = new CustomJsonModel { Success = false, Message = "There was an error when processing your request. Please try again" }; var antoherMortageEntry = new MortgageEntryViewModel() { InterestRate = 9, }; MortgageController controller = new MortgageController(mortageServiceMock.Object); //Act var controllerResult = controller.SendMail(antoherMortageEntry, _email); CustomJson jsonResult = controllerResult as CustomJson; //Assert Assert.AreEqual(expectedResult.Message, jsonResult.Data.Message); }