Esempio n. 1
0
        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));
        }