public ActionResult Save(BookViewModel model)
        {
            model.Event = _eventRepo.FindByID(model.Event.ID);
            Account booker = _accountRepo.FindAll().Where(u => u.Email == User.Identity.Name).FirstOrDefault();
            model.Booker = booker;
            List<Attendant> ValidAttendants = new List<Attendant>();

            model.Attendants.ForEach(delegate(Attendant attendant)
            {
                if (attendant.Email != null && attendant.FirstName != null && attendant.LastName != null)
                {
                    attendant.BookerID = booker.ID;
                    attendant.EventID = model.Event.ID;

                    ValidAttendants.Add(attendant);
                }
            });

            if (model.BookerAttends)
            {
                ValidAttendants.Add(new Attendant {
                    FirstName = booker.FirstName,
                    LastName = booker.LastName,
                    Email = booker.Email,
                    BookerID = booker.ID,
                    EventID = model.Event.ID
                });
            }

            ValidAttendants.ForEach(delegate(Attendant attendant)
            {
                bool alreadyExists = (_attendantRepo.FindAll().Where( a => a.EventID == attendant.EventID && a.Email == attendant.Email).Count() > 0);

                if( ! alreadyExists ) {
                    _attendantRepo.Save(attendant);
                }
            });

            model.Attendants = ValidAttendants; // Update model for mail-rendering

            // Send mail to booker
            try
            {
                MailSender("bookingEmailTemplate", model, "*****@*****.**", "Bokning");
                MailSender("johanBookingEmailTemplate", model, "*****@*****.**", "Bokning");
            }
            catch (Exception exception)
            {
                TempData["Event"] = model.Event.ID;
                return RedirectToAction("Fail");
            }

            return RedirectToAction("List");
        }
Esempio n. 2
0
        public ActionResult Save(BookViewModel model)
        {
            model.Event = _eventRepo.FindByID(model.Event.ID);
            Account booker = _accountRepo.FindAll().Where(u => u.Email == User.Identity.Name).FirstOrDefault();

            List<Attendant> ValidAttendants = new List<Attendant>();
            for (int i = 0; i < model.Attendants.Count; i++)
            {
                if (model.Attendants[i].Email != null && model.Attendants[i].Name != null)
                {
                    model.Attendants[i].BookerID = booker.ID;
                    model.Attendants[i].EventID = model.Event.ID;

                    //model.Attendants[i].Event = _eventRepo.FindByID(model.Event.ID);
                    //model.Attendants[i].Booker = _accountRepo.FindByID(booker.ID);

                    ValidAttendants.Add(model.Attendants[i]);
                }
            }

            if (model.BookerAttends)
            {
                ValidAttendants.Add(new Attendant {
                    Name = booker.FullName,
                    Email = booker.Email,
                    BookerID = booker.ID,
                    EventID = model.Event.ID
                });
            }

            //if (!ModelState.IsValid) return View();

            ValidAttendants.ForEach(delegate(Attendant attendant)
            {
                _attendantRepo.Save(attendant);
            });

            return RedirectToAction("List");
        }
Esempio n. 3
0
 public ActionResult Event(int id = 0)
 {
     BookViewModel model = new BookViewModel();
     model.Event = _eventRepo.FindByID(id);
     return View(model);
 }
        public ActionResult SendEvaluation(int id)
        {
            var Event = _eventRepo.FindByID(id);
            BookViewModel model = new BookViewModel();
            model.Attendants = Event.Attendants.ToList();
            model.Event = Event;
            string title = "Utvärdering av " + Event.Title;
            try
            {
                foreach (var attendant in model.Attendants)
                {
                    MailSender("attendantEmailTemplate", model, attendant.Email, title);
                }
            }
            catch (Exception exception)
            {
                TempData["Event"] = model.Event.ID;
                return RedirectToAction("Fail");
            }

            return View("Evaluation", "Evaluation", new { id = Event.ID });
        }