Exemplo n.º 1
0
        public Task <bool> Handle(CadastrarRepresentanteCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var onboarding = _onboardingRepository.Find(o => o.CodigoConvite.Equals(message.CodigoConvite) && o.NumeroCelular.Equals(message.NumeroCelular)).FirstOrDefault();

            if (onboarding == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Código do convite ou número de celular inválidos.", message));
                return(Task.FromResult(false));
            }

            if (onboarding.Consultor == null)
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Consultor não cadastrado.", message));
                return(Task.FromResult(false));
            }

            var representante = new Representante(Guid.NewGuid(), message.Cpf, message.NomeCompleto, message.Sexo, message.EstadoCivil,
                                                  message.Nacionalidade, message.DocumentoFrenteBase64, message.DocumentoVersoBase64, onboarding.Consultor.Id);

            _representanteRepository.Add(representante);

            foreach (var value in message.Emails)
            {
                var tipoEmail = (int?)value.GetType().GetProperty("TipoEmail")?.GetValue(value, null);
                var email     = value.GetType().GetProperty("Email")?.GetValue(value, null)?.ToString();

                var representanteEmail = new RepresentanteEmail(Guid.NewGuid(), tipoEmail.GetValueOrDefault(), email, representante.Id);

                _representanteEmailRepository.Add(representanteEmail);
            }

            foreach (var value in message.Telefones)
            {
                var tipoTelefone = (int?)value.GetType().GetProperty("TipoTelefone")?.GetValue(value, null);
                var numero       = value.GetType().GetProperty("Numero")?.GetValue(value, null)?.ToString();

                var representanteTelefone = new RepresentanteTelefone(Guid.NewGuid(), tipoTelefone.GetValueOrDefault(), numero, representante.Id);

                _representanteTelefoneRepository.Add(representanteTelefone);
            }

            onboarding.StatusOnboarding = StatusOnboarding.DadosRepresentante;

            _onboardingRepository.Update(onboarding);

            if (Commit())
            {
            }

            return(Task.FromResult(true));
        }
Exemplo n.º 2
0
        public void CadastrarRepresentante(string codigoConvite, string numeroCelular, string cpf, string nomeCompleto, int sexo,
                                           int estadoCivil, string nacionalidade, IEnumerable <object> emails, IEnumerable <object> telefones, string documentoFrenteBase64,
                                           string documentoVersoBase64)
        {
            var cadastrarRepresentanteCommand = new CadastrarRepresentanteCommand(codigoConvite, numeroCelular, cpf, nomeCompleto, sexo,
                                                                                  estadoCivil, nacionalidade, emails, telefones, documentoFrenteBase64,
                                                                                  documentoVersoBase64);

            _bus.SendCommand(cadastrarRepresentanteCommand);
        }