public Customeraccount Create(Customeraccount user, string password) { // validation if (string.IsNullOrWhiteSpace(password)) { throw new AppException("Password is required"); } if (_context.Customeraccount.Any(x => x.EmailId == user.EmailId)) { throw new AppException("Username \"" + user.EmailId + "\" is already taken"); } byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; user.RoleId = 0; // user.CustId = 0; _context.Customeraccount.Add(user); _context.SaveChanges(); return(user); }
public void Update(Customeraccount userParam, string password = null) { var user = _context.Customeraccount.Find(userParam.CustId); if (user == null) { throw new AppException("User not found"); } // update username if it has changed if (!string.IsNullOrWhiteSpace(userParam.EmailId) && userParam.EmailId != user.EmailId) { // throw error if the new username is already taken if (_context.Customeraccount.Any(x => x.EmailId == userParam.EmailId)) { throw new AppException("Username " + userParam.EmailId + " is already taken"); } user.EmailId = userParam.EmailId; } // update user properties if provided if (!string.IsNullOrWhiteSpace(userParam.FirstName)) { user.FirstName = userParam.FirstName; } if (!string.IsNullOrWhiteSpace(userParam.LastName)) { user.LastName = userParam.LastName; } // update password if provided if (!string.IsNullOrWhiteSpace(password)) { byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; } _context.Customeraccount.Update(user); _context.SaveChanges(); }