Example #1
0
        public ActionResult Detalles(UsuariosModelo model)
        {
            if (ModelState.IsValid)
            {
                var telefonos_viejos = baseDatos.Usuarios_Telefonos.Where(m => m.usuario == model.usuario.cedula);

                foreach (Usuarios_Telefonos telefono in telefonos_viejos)
                {
                    baseDatos.Entry(telefono).State = System.Data.Entity.EntityState.Deleted;
                }
                baseDatos.SaveChanges();

                var telefonoEntry = new Usuarios_Telefonos();
                telefonoEntry.telefono = model.tel1;
                telefonoEntry.usuario  = model.usuario.cedula;

                baseDatos.Usuarios_Telefonos.Add(telefonoEntry);

                if (model.tel2 != null)
                {
                    var telefonoEntry2 = new Usuarios_Telefonos();
                    telefonoEntry2.telefono = model.tel2;
                    telefonoEntry2.usuario  = model.usuario.cedula;
                    baseDatos.Usuarios_Telefonos.Add(telefonoEntry2);
                }

                if (model.tel3 != null)
                {
                    var telefonoEntry3 = new Usuarios_Telefonos();
                    telefonoEntry3.telefono = model.tel3;
                    telefonoEntry3.usuario  = model.usuario.cedula;
                    baseDatos.Usuarios_Telefonos.Add(telefonoEntry3);
                }

                baseDatos.SaveChanges();

                var usuario = baseDatos.Usuarios.Find(model.usuario.cedula);
                usuario.nombre    = model.nombreUsuario;
                usuario.updatedAt = DateTime.Now;

                baseDatos.Entry(usuario).State = System.Data.Entity.EntityState.Modified;
                baseDatos.SaveChanges();

                var aspUser = UserManager.FindById(model.identityUsuario.Id);
                aspUser.UserName = model.email;
                aspUser.Email    = model.email;

                UserManager.Update(aspUser);

                var rolViejo       = aspUser.Roles.SingleOrDefault().RoleId;
                var nombreRolViejo = context.Roles.SingleOrDefault(m => m.Id == rolViejo).Name;
                UserManager.RemoveFromRole(model.identityUsuario.Id, nombreRolViejo);
                UserManager.AddToRole(model.identityUsuario.Id, model.rol.Name);

                this.AddToastMessage("Usuario Modificado", "El usuario " + model.usuario.nombre + " se ha actualizado correctamente.", ToastType.Success);
                return(RedirectToAction("Index", "Usuarios"));
            }

            return(View(model));
        }
Example #2
0
        public async Task <ActionResult> Crear(CrearUsuarioModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                try
                {
                    //generacion de contraseña provisional
                    string generatedPassword = Membership.GeneratePassword(12, 2);
                    //crea el usuario en la tabla de AspNetUsers
                    var result = await UserManager.CreateAsync(user, generatedPassword);

                    if (result.Succeeded)
                    {
                        // Crea el usuario en las tabla de Usuario
                        var userEntry = new Usuario();
                        userEntry.cedula    = model.Cedula;
                        userEntry.nombre    = model.Nombre;
                        userEntry.id        = context.Users.Where(u => u.Email == model.Email).FirstOrDefault().Id;
                        userEntry.updatedAt = DateTime.Now;

                        baseDatos.Usuarios.Add(userEntry);
                        baseDatos.SaveChanges();

                        var telefonoEntry = new Usuarios_Telefonos();
                        telefonoEntry.telefono = model.Telefono;
                        telefonoEntry.usuario  = model.Cedula;

                        baseDatos.Usuarios_Telefonos.Add(telefonoEntry);

                        // valida los datos recibidos del modelo
                        if (model.Telefono2 != null)
                        {
                            var telefonoEntry2 = new Usuarios_Telefonos();
                            telefonoEntry2.telefono = model.Telefono2;
                            telefonoEntry2.usuario  = model.Cedula;
                            baseDatos.Usuarios_Telefonos.Add(telefonoEntry2);
                        }

                        if (model.Telefono3 != null)
                        {
                            var telefonoEntry3 = new Usuarios_Telefonos();
                            telefonoEntry3.telefono = model.Telefono3;
                            telefonoEntry3.usuario  = model.Cedula;
                            baseDatos.Usuarios_Telefonos.Add(telefonoEntry3);
                        }

                        baseDatos.SaveChanges();

                        //Envio de Correo
                        //string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Confirm your account", model.Nombre, generatedPassword);

                        //crea la relacion del usuario con el rol
                        await this.UserManager.AddToRoleAsync(user.Id, model.UserRoles);

                        this.AddToastMessage("Usuario Creado", "El usuario " + model.Nombre + " se ha creado correctamente. Se envió un correo electronico de confirmación al usuario", ToastType.Success);
                        return(RedirectToAction("Crear", "Usuarios"));
                    }

                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error);
                    }

                    await UserManager.DeleteAsync(user);

                    ViewBag.Name = new SelectList(context.Roles.ToList(), "Name", "Name");
                    // Si llegamos a este punto, es que se ha producido un error y volvemos a mostrar el formulario

                    this.AddToastMessage("Error", "Ha ocurrido un error al crear al usuario " + model.Nombre + ".", ToastType.Error);
                    return(View(model));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    this.AddToastMessage("Error", "Ha ocurrido un error al crear al usuario " + model.Nombre + ".", ToastType.Error);
                    ViewBag.Name = new SelectList(context.Roles.ToList(), "Name", "Name");
                    return(View(model));
                }
            }
            return(View(model));
        }