private void AtualizarMeioCominicacaoPessoa(Pessoa pessoa, Pessoa pessoaAtual, TipoComunicacaoEnum tipoComunicacao) { //Adiciona um meio de cominicação ou modifica o exitente para principal var meioComunicacaoAtualizar = pessoa.MeiosComunicacao.FirstOrDefault(x => x.TipoComunicacao.Equals(tipoComunicacao)); if (meioComunicacaoAtualizar == null && (tipoComunicacao == TipoComunicacaoEnum.Email || tipoComunicacao == TipoComunicacaoEnum.Celular)) { return; } AssertionConcern.AssertArgumentNotEquals(meioComunicacaoAtualizar, null, Erros.EmptyPhone); if (meioComunicacaoAtualizar != null && meioComunicacaoAtualizar.MeioComunicacaoCodigo.Equals(0) && !pessoaAtual.MeiosComunicacao.Any(x => x.MeioComunicacaoNome.Equals(meioComunicacaoAtualizar.MeioComunicacaoNome))) { meioComunicacaoAtualizar.Pessoa = pessoaAtual; var novoMeioComunicacao = _meioComunicacaoRepository.Criar(meioComunicacaoAtualizar); pessoaAtual.MeiosComunicacao.Add(novoMeioComunicacao); } else if (meioComunicacaoAtualizar != null && !meioComunicacaoAtualizar.MeioComunicacaoCodigo.Equals(0)) { //Encotra o endereço que sera o principal foreach (var item in pessoaAtual.MeiosComunicacao) { item.Principal = item.MeioComunicacaoCodigo.Equals(meioComunicacaoAtualizar.MeioComunicacaoCodigo); } } }