Пример #1
0
        public async Task AuthenticateAsync(LoginDto login)
        {
            var registereUser = await repository.GetByAsync(u => u.Username == login.Username);

            if (registereUser == null)
            {
                throw new ArgumentNullException();
            }

            login.Authenticate(registereUser.PasswordHash, registereUser.PasswordSalt);
            login.Password = null;
            login.UserId   = registereUser.Id;

            if (registereUser.Roles.Count == 0)
            {
                registereUser.Roles.Add(new Role {
                    RoleName = "User"
                });
                await repository.UpdateAsync(registereUser);
            }
            login.Roles = registereUser.Roles.Select(r => new RoleDto {
                RoleName = r.RoleName
            }).ToArray();
            login.Created = DateTime.UtcNow;
        }