public void When_sending_a_rejection_email() { var email = S<IEmailService>(); var organizer = new User("organizer") { Email = "*****@*****.**" }; var callForSpeakers = new CallForSpeakers { Organizer = organizer, EventName = "event" }; var speaker = new User("foo") { Email = "*****@*****.**" }; var submission = new Submission(speaker, new SubmissionViewModel {Title = "title"}, callForSpeakers) { RejectionReason = "rejection reason" }; var sender = new DomainEmailSender(email); sender.SubmissionRejection(submission); emailMessage = (EmailMessage) email.GetArgumentsForCallsMadeOn(x => x.Send(null))[0][0]; }
public void When_accepting_a_submission() { var sub = new Submission(new User("foo"), new SubmissionViewModel(), new CallForSpeakers()); var domainEmailSender = S<IDomainEmailSender>(); sub.Status.ShouldEqual(Submission.Submitted); sub.Accept(domainEmailSender); sub.Status.ShouldEqual(Submission.Accepted); domainEmailSender.AssertWasCalled(x => x.SubmissionAcceptance(sub)); }
public void SubmissionAcceptance(Submission submission) { var msg = new EmailMessage { To = new[] { submission.Submitter.Email }, Subject = "Your submission to " + submission.CallForSpeakers.EventName, Cc = new[] { submission.CallForSpeakers.Organizer.Email }, Text = string.Format("Congratulations! Your submission \"{0}\" has been accepted!", submission.Title) }; _emailService.Send(msg); }
public void SubmissionRejection(Submission submission) { var msg = new EmailMessage { To = new[] { submission.Submitter.Email }, Subject = "Your submission to " + submission.CallForSpeakers.EventName, Cc = new[] { submission.CallForSpeakers.Organizer.Email }, Text = string.Format("Your submission \"{0}\" has been rejected by the organizer: {1}", submission.Title, submission.RejectionReason) }; _emailService.Send(msg); }
public void When_rejecting_a_submission() { var sub = new Submission(new User("foo"), new SubmissionViewModel(), new CallForSpeakers()); var domainEmailSender = S<IDomainEmailSender>(); sub.Status.ShouldEqual(Submission.Submitted); sub.Reject("reason", domainEmailSender); sub.RejectionReason.ShouldEqual("reason"); sub.Status.ShouldEqual(Submission.Rejected); domainEmailSender.AssertWasCalled(x => x.SubmissionRejection(sub)); }
public ActionResult ProcessSubmission(User user, SubmissionViewModel input) { if (ModelState.IsValid) { using (var db = new DataContext(user)) { var found = db.CallsForSpeakers.Find(input.CallForSpeakersId); if (found == null) { Error("There was a problem submitting this session"); return RedirectToAction("Index", "Home", new {area = ""}); } var submission = new Submission(user, input, found); db.Submissions.Add(submission); db.SaveChanges(); } Success("Successfully submitted session"); return RedirectToAction("Index", "Home", new { area = "" }); } return View("Create"); }