public async Task <Result> CreateDeveloperAsync(DeveloperCreateDto developerDto) { var existLogin = await _developerRepository.ExistByLoginAsync(developerDto.Login); if (existLogin) { return(new Result(Status.Conflict, $"Developer with {nameof(developerDto.Login)} already exist")); } var validCpf = await _mockyService.ValidateCPFAsync(developerDto.CPF); if (!validCpf.Success) { return(new Result(validCpf.Status, validCpf.ErrorMessages)); } if (!validCpf.Data) { return(new Result(Status.Invalid, $"Parameter {nameof(developerDto.CPF)} is not valid")); } var developer = new Developer( id: developerDto.Id, name: developerDto.Name, login: developerDto.Login, cpf: developerDto.CPF, password: developerDto.Password ); await _developerRepository.CreateAsync(developer); return(new Result()); }
public async Task <Result <TokenDto> > LoginAsync(LoginDto loginDto) { var defaultReject = new Result <TokenDto>(Status.Unauthorized, "Login or Password is not valid"); var exists = await _developerRepository.ExistByLoginAsync(loginDto.Login); if (!exists) { return(defaultReject); } var developer = await _developerRepository.FindByLoginAsync(loginDto.Login); if (!developer.ValidatePassword(loginDto.Password)) { return(defaultReject); } return(new Result <TokenDto>(await GenerateJwtTokenAsync(developer))); }