public string RSVP(RsvpRequest req) { var ret = false; try { using (WeddingEntities context = new WeddingEntities()) { var guest = context.GuestHeaders.Where(q => q.GuestHeaderId == req.GuestHeaderId).FirstOrDefault(); var sendEmailReq = new List <SendEmail>(); var emailId = req.Attending == true ? 11 : 12; var email = context.Emails.Where(q => q.Id == emailId).FirstOrDefault(); //set up email data foreach (var gd in guest.GuestDetails) { //only add guests with email addresses to list if (gd.Email != null && gd.Email != "") { sendEmailReq.Add(new SendEmail { EmailId = email.Id, GuestDetailId = gd.GuestDetailId, IsTestEmail = false, EmailAddress = gd.Email, EmailSubject = email.Subject, EmailBody = req.EmailBody, RsvpConfimationEmail = true }); } } guest.GuestCount = req.GuestCount; guest.Attending = req.Attending; guest.CheckedIn = true; guest.UpdatedOn = DateTime.UtcNow.ToUniversalTime();; context.GuestHeaders.AddOrUpdate(guest); context.SaveChanges(); ret = true; AdminController ac = new AdminController(); foreach (var emailReq in sendEmailReq) { ac.SendEmail(emailReq); } } } catch (Exception ex) { throw ex; } return(JsonConvert.SerializeObject(ret)); }
public IActionResult AddRsvp([FromBody] RsvpRequest rsvpRequest) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelState)); } var dinner = _dinnerRepository.GetById(rsvpRequest.DinnerId); if (dinner == null) { return(HttpNotFound("Dinner not found.")); } var result = dinner.AddRsvp(rsvpRequest.Name, rsvpRequest.Email, _systemClock.Now); _dinnerRepository.Update(dinner); return(Ok(result)); }