public User Save(User user) { try { if (_context.Users.EntityChange(user)) { if (_context.Users.Update(user) == 0) { return(user); } } else { var dbUser = _context.Users.Find(u => u.Email.ToLower() == user.Email.ToLower()); if (dbUser == null) { user.Id = Guid.NewGuid(); user.PasswordSalt = _passwordHelper.CreateSalt(); user.Password = _passwordHelper.CreatePasswordHash(user.Password, user.PasswordSalt); user.UserType = Enums.UserType.Unknow; return(_context.Users.Create(user)); } } } catch (Exception ex) { _logger.ErrorFormat("Exception: {0}", ex.ToString()); return(null); } return(null); }
public async Task <IActionResult> PutAccount(Account account) { var requestor = await _TokenManager.GetTokenOwner(); if (!(requestor.Admin || account.ID == requestor.ID)) { return(Unauthorized()); } if (account.Password != "" && account.ID == requestor.ID) { account.Password = _PasswordHelper.CreatePasswordHash(account.Password); } else { await ReturnPassword(account); } _Context.Entry(account).State = EntityState.Modified; try { await _Context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AccountExists(account.ID)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private Account AuthenticateAccount(Login login) { var passwordHash = _PasswordHelper.CreatePasswordHash(login.Password); return(_Context.Accounts.SingleOrDefault(a => a.Email == login.Email && a.Password == passwordHash)); }