// GET: Miembros/Create public ActionResult Create() { IEnumerable <Evento> eventos; if (!User.IsInRole("admin")) { var userId = User.Identity.GetUserId(); eventos = db.Miembros.Single(m => m.UsuarioId == userId).Eventos.ToList(); } else { eventos = db.Eventos.ToList(); } //Obtener las areas del primer evento si existe. var areas = eventos.FirstOrDefault()?.AreasCientificas.Split(';').ToList(); //armar una lista para el select de la vista var areasSelect = new List <SelectListItem>(); //para cada area crear un selectlist item. areas.ForEach((item) => { areasSelect.Add(new SelectListItem() { Value = item, Text = item, }); }); var model = new CrearMiembroViewModel() { Eventos = new SelectList(eventos, "Id", "Nombre"), AreasCientificas = areasSelect }; return(View(model)); }
public ActionResult Create(CrearMiembroViewModel model) { if (ModelState.IsValid) { var store = new UserStore <ApplicationUser>(db); var UserManager = new ApplicationUserManager(store); var usuario = new ApplicationUser() { UserName = model.Email, Email = model.Email, }; var miembro = new MiembroComite() { Nombre = model.Nombre, Apellido = model.Apellido, AreaCientifica = model.AreaCientifica, }; var result = UserManager.CrearMiembro(usuario, model.Password, miembro); if (result.Succeeded) { var userId = UserManager.FindByEmail(model.Email).Id; miembro = db.Miembros.First(m => m.UsuarioId == userId); var evento = db.Eventos.Find(model.EventoId); evento.Comite.Add(miembro); miembro.Eventos.Add(evento); db.SaveChanges(); return(RedirectToAction("Index")); } } return(View(model)); }