コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }