Example #1
0
        public async Task <IActionResult> AgregarUsuario(AgregarUsuarioViewModel agregarUsuarioViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(agregarUsuarioViewModel));
            }
            var usuario = new IdentityUser()
            {
                UserName = agregarUsuarioViewModel.UserName,
                Email    = agregarUsuarioViewModel.Email
            };

            IdentityResult resultado = await userManagerRepositorio.CreateAsync(usuario, agregarUsuarioViewModel.Password);

            if (resultado.Succeeded)
            {
                return(RedirectToAction("UserManagment", userManagerRepositorio.Users));
            }

            foreach (IdentityError error in resultado.Errors)
            {
                ModelState.AddModelError("", error.Description);
            }
            return(View(agregarUsuarioViewModel));
        }
        public async Task <IActionResult> Create(AgregarUsuarioViewModel Model)
        {
            if (ModelState.IsValid)
            {
                User Usuario = new User
                {
                    Direccion   = Model.Direccion,
                    Documento   = Model.Documento,
                    Email       = Model.NombreUsuario,
                    Nombre      = Model.Nombre,
                    Apellido    = Model.Apellido,
                    PhoneNumber = Model.Telefono,
                    UserName    = Model.NombreUsuario
                };

                IdentityResult Respuesta = await _UserHelper.AddUserAsync(Usuario, Model.Password);

                if (Respuesta.Succeeded)
                {
                    var UsuarioInDB = await _UserHelper.GetUserByEmailAsync(Model.NombreUsuario);

                    await _UserHelper.AddUserToRoleAsync(UsuarioInDB, "Cliente");

                    Propietario Propietario = new Propietario
                    {
                        Agendas  = new List <Agenda>(),
                        Mascotas = new List <Mascota>(),
                        User     = UsuarioInDB
                    };

                    _Context.Propietarios.Add(Propietario);

                    try
                    {
                        await _Context.SaveChangesAsync();

                        return(RedirectToAction(nameof(Index)));
                    }

                    catch (Exception Ex)
                    {
                        ModelState.AddModelError(string.Empty, Ex.ToString());
                        return(View(Model));

                        throw;
                    }
                }

                ModelState.AddModelError(string.Empty, Respuesta.Errors.FirstOrDefault().Description);
            }

            return(View(Model));
        }