public ActionResult CrearEvento(CrearEventoViewModel vm)
 {
     if (!this.esOrganizador())
     {
         return(RedirectToAction("Logout", "Home", new { mensaje = @"Usted no tiene los permisos necesarios 
                                                     para utilizar el recurso.
                                                     Por favor inicie sesión con las credenciales adecuadas" }));
     }
     else
     {
         if (vm.Fecha < DateTime.Now)
         {
             ModelState.AddModelError("", "La fecha debe ser mayor a la actual.");
         }
         if (vm.Evento.Nombre == null || vm.Evento.Nombre == "")
         {
             ModelState.AddModelError("", "Debe ingresar un Nombre para el evento.");
         }
         if (ModelState.IsValid)
         {
             using (GestionEventosContext db = new GestionEventosContext())
             {
                 Evento auxEv = db.Eventos.Find(vm.Evento.Nombre);
                 if (auxEv != null)
                 {
                     ModelState.AddModelError("", "Ya existe un Evento con ese nombre.");
                 }
                 else
                 {
                     var fechaYDireccion = db.Eventos.Where(p => p.Direccion == vm.Evento.Direccion)
                                           .Where(p => p.Fecha == vm.Fecha).FirstOrDefault();
                     if (fechaYDireccion != null)
                     {
                         ModelState.AddModelError("", "Ya existe un Evento en esa fecha y direccion");
                     }
                     else
                     {
                         TipoEvento tipoEv = db.TipoEventos.Find(vm.IdTipoEvento);
                         db.Entry(tipoEv).Collection(p => p.TiposServicios).Load();
                         vm.Evento.TipoEvento     = tipoEv;
                         Session["CrearEventoVM"] = vm;
                         return(RedirectToAction("SeleccionarProveedoresEvento"));
                     }
                 }
             }
         }
         else
         {
             vm = (CrearEventoViewModel)TempData["Evento"];
             TempData["Evento"] = vm;
         }
         return(View(vm));
     }
 }
 public ActionResult Editar()
 {
     if (!this.esOrganizador())
     {
         return(RedirectToAction("Logout", "Home", new { mensaje = @"Usted no tiene los permisos necesarios 
                                                     para utilizar el recurso.
                                                     Por favor inicie sesión con las credenciales adecuadas" }));
     }
     else
     {
         Organizador org = null;
         using (GestionEventosContext db = new GestionEventosContext())
         {
             org = db.Organizadores.Find(Session["OrganizadorLogueado"].ToString());
             db.Entry(org).Reference(p => p.Usuario).Load();
             TempData["Organizador"] = org;
         }
         return(View(org));
     }
 }