Esempio n. 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Name,Email,Password,Id")] UserEditable userE, int[] groups)
        {
            if (id != userE.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    User user     = (User)userE;
                    User original = await _userDAO.FindOrDefault(user.Id);

                    if (original == null)
                    {
                        return(NotFound());
                    }

                    original.Name  = user.Name;
                    original.Email = user.Email;

                    if (!string.IsNullOrWhiteSpace(user.Password))
                    {
                        original.Password = BCrypt.Net.BCrypt.HashPassword(user.Password);
                    }

                    await _userRepository.Update(original, groups);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (_userDAO.Find(userE.Id) == null)
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(All)));
            }

            await PutGroupsInView((User)userE);

            return(View(userE));
        }
Esempio n. 2
0
        public async Task <IActionResult> Settings([Bind("Name,Email,Password,Id")] UserEditable userE)
        {
            if (ModelState.IsValid)
            {
                User user         = (User)userE;
                var  originalUser = await _userDAO.FindOrDefault(user.Id);

                if (originalUser == null)
                {
                    return(RedirectToAction(nameof(Login)));
                }

                originalUser.Name  = user.Name;
                originalUser.Email = user.Email;

                if (!string.IsNullOrEmpty(user.Password))
                {
                    originalUser.Password = BCrypt.Net.BCrypt.HashPassword(user.Password);
                }

                try
                {
                    await _userDAO.Save(originalUser);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (_userDAO.FindOrDefault(user.Id) == null)
                    {
                        return(RedirectToAction(nameof(Login)));
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction("Index", "Home"));
            }

            return(View(userE));
        }