public ActionResult Index() { ApplicationDbContext db = new ApplicationDbContext(); RequestedEventViewModel viewModel = new RequestedEventViewModel { InvitableUsers = new Dictionary <string, string>(), Invitees = new List <string>() }; foreach (var u in db.Users) { if (u.Id != User.Identity.GetUserId()) { viewModel.InvitableUsers.Add(u.Id, u.Firstname + " " + u.Lastname); } } return(View(viewModel)); }
public ActionResult AddEvent(RequestedEventViewModel em) { using (ApplicationDbContext db = new ApplicationDbContext()) { if (em.TimeSuggestions.Any(i => i.StartTime >= i.EndTime)) { ModelState.AddModelError("", "Startiden kan inte vara efter sluttiden"); } if (!ModelState.IsValid) { em.InvitableUsers = new Dictionary <string, string>(); em.Invitees = new List <string>(); foreach (var u in db.Users) { if (u.Id != User.Identity.GetUserId()) { em.InvitableUsers.Add(u.Id, u.Firstname + " " + u.Lastname); } } return(View("../Home/Index", em)); } if (em.Invitees != null) { var newEvent = new RequestedEventModel { Title = em.Title, Description = em.Description, Location = em.Location, TimeSuggestions = new List <DateModel>(), Invitees = new List <ApplicationUser>(), EventCreator = db.Users.Find(User.Identity.GetUserId()) }; newEvent.TimeSuggestions = em.TimeSuggestions; var emailNotification = new EmailNotification(); foreach (string s in em.Invitees) { newEvent.Invitees.Add(db.Users.Find(s)); var invitee = db.Users.FirstOrDefault(u => u.Id == s); emailNotification.SendEventInvitationEmail(invitee.Email); } db.RequestedEvents.Add(newEvent); db.SaveChanges(); } else { var newEvent = new EventModel { Title = em.Title, Description = em.Description, Location = em.Location, Start = em.TimeSuggestions[0].StartTime, End = em.TimeSuggestions[0].EndTime, EventCreator = db.Users.Find(User.Identity.GetUserId()) }; db.EventModels.Add(newEvent); db.SaveChanges(); } } return(RedirectToAction("Index", "Home")); }