Ejemplo n.º 1
0
        public IndicatorLoginDTO RegisterNewAsync(Indicator indicator)
        {
            IndicatorUtil Util = new IndicatorService();

            if (Util.CPFIsEmpty(indicator))
            {
                throw new BadRequestException("CPF deve ser preenchido");
            }

            if (_cpfValidate.ValidaCPF(indicator.CPF) == false)
            {
                throw new BadRequestException($"CPF inválido: {indicator.CPF}");
            }

            if (!Util.ObjectIsNull(_repository.GetIndicatorByCPF(indicator.CPF)))
            {
                throw new BadRequestException($"Já existe um usuário cadastrado com este cpf: {indicator.CPF}, faça login :)");
            }

            if (Util.StringIsNull(indicator.Password))
            {
                throw new BadRequestException("SENHA deve ser preenchida");
            }

            try
            {
                indicator.confirmCode = Util.GenerateRamdom();
                EmailAddress emailAddress = new EmailAddress();
                emailAddress.Email = indicator.Email;
                emailAddress.Name  = indicator.Name;
                SendRegisterMailAsync(emailAddress, indicator.confirmCode).Wait();
                _repository.Create(indicator);
                IndicatorLoginDTO indicatorLogged = new IndicatorLoginDTO();
                indicatorLogged.CPF         = indicator.CPF;
                indicatorLogged.Email       = indicator.Email;
                indicatorLogged.Name        = indicator.Name;
                indicatorLogged.Status      = indicator.Status;
                indicatorLogged.IsConfirmed = indicator.IsConfirmed;
                indicatorLogged.ConfirmCode = indicator.confirmCode;
                return(indicatorLogged);
            }
            catch (Exception e)
            {
                throw new Exception($"Tipo da excessão: {e.GetType()}");
            }
        }