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"));
        }