Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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)));
        }