public async Task <(NduNotification notification, User user)> Execute(UserAuthenticateRequest request) { var notification = new NduNotification(); var crypto = new NduCrypto(Settings.CRYPTO_KEY); var passwordEncrypted = crypto.Encrypt(request.Password); var user = await _context.Users .Where(m => m.Email == request.Email && m.Password == passwordEncrypted) .FirstOrDefaultAsync(); if (user == null) { notification.AddNotification("User or Password invalid"); return(notification, null); } return(notification, user); }
public async Task <NduNotification> Execute(AccountCreateRequest request) { var result = new NduNotification(); var userAccountExists = await _context.Users .AnyAsync(m => m.Email == request.Email); if (userAccountExists) { result.AddNotification("Email", "User already exists"); return(result); } if (request.Password != request.ConfirmPassword) { result.AddNotification("Password not match"); return(result); } var crypto = new NduCrypto(Settings.CRYPTO_KEY); var passwordEncrypted = crypto.Encrypt(request.Password); var user = new User() { Email = request.Email, Name = request.Name, Password = passwordEncrypted }; result = NduModel <User> .Validate(user); if (result.Success()) { _context.Entry(user).State = EntityState.Added; await _context.SaveChangesAsync(); } return(result); }