public async Task <HttpStatusCode> PostEventInviteToGuests(string eventGuid, [FromBody] EmailMessage emailMsg) { // retrieve guest emails via event id List <Guest> eventGuests = await _guestsQuery.GetListByEventGuid(eventGuid); // check if guests are returned if (eventGuests == null || eventGuests.Count == 0) { return(HttpStatusCode.NotFound); } Boolean isSuccessful = true; // TODO - Instead of emailing all of the guests in one email, they should probably // be emailed individually. This would allow for a RSVP link to be embedded into the content. eventGuests.ForEach(guest => { // create to list and set List <EmailPersonalization> personalizations = new List <EmailPersonalization>(); List <EmailRecipient> emailTos = new List <EmailRecipient>(); List <EmailContent> emailContents = new List <EmailContent>(); EmailPersonalization personalization = new EmailPersonalization(); emailTos.Add(new EmailRecipient(guest.name, guest.email)); personalization.to = emailTos; personalizations.Add(personalization); emailMsg.personalizations = personalizations; emailContents.Add(_invitationQuery.updateInvitationContentToIncludeRSVP(guest, emailMsg.content[0], HttpContext)); emailMsg.content = emailContents; Task <HttpStatusCode> response = _emailQuery.sendEmailViaPostAsync(emailMsg); if (response.Result.Equals(HttpStatusCode.Accepted)) { Console.WriteLine("Successfully sent email to " + guest.email); } else { isSuccessful = false; Console.WriteLine("Error sending email to " + guest.guestId + " at " + guest.email); } }); if (isSuccessful) { return(HttpStatusCode.Accepted); } else { return(HttpStatusCode.BadRequest); } }
public async Task <IActionResult> GetListByEventGuid(string guid) { try { var guests = await _query.GetListByEventGuid(guid); if (guests == null || guests.Count == 0) { return(new NotFoundResult()); } return(new OkObjectResult(guests)); } catch (Exception) { //TODO: we should log our errors in the db return(new BadRequestResult()); } }