public async Task CriarAsync(Guid aggregateId, string nome, string cnpj, int cidadeId, string cep, string logradouro, int numero, string bairro, string complemento, List <Tuple <int, string> > telefones, List <Tuple <int, string> > emails) { if (nome.IsNullOrWhiteSpace()) { throw new InstituicaoDeEnsino.NomeObrigatorioException(); } if (cnpj.IsNullOrWhiteSpace()) { throw new InstituicaoDeEnsino.CnpjObrigatorioException(); } var endereco = new Endereco(cidadeId, cep, logradouro, numero, bairro, complemento); var pessoa = new Pessoa(aggregateId, nome, EPessoaTipo.PessoaJuridica, endereco); var instituicaoDeEnsino = new InstituicaoDeEnsino(cnpj, pessoa); foreach (var(tipoId, telefone) in telefones) { pessoa.Telefones.Add(new Telefone((ETelefoneTipo)tipoId, telefone)); } foreach (var(tipoId, email) in emails) { pessoa.Emails.Add(new Email((EEmailTipo)tipoId, email)); } await _repository.CriarAsync(instituicaoDeEnsino); }