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