예제 #1
0
        // 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));
        }
예제 #2
0
        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));
        }