Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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());
            }
        }