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()}"); } }