public ClienteBuscaViewModel AtualizarClienteAtividade(long atividadeId, long novoClienteId, string novoClienteTipo, string userId, bool clienteSomenteContato, long?atualClienteId, string atualClienteTipo, long?clienteTipoContato) { var retorno = new ClienteBuscaViewModel(); long?pessoaFisicaId = null; long?pessoaJuridicaId = null; long?atualPessoaFisicaId = null; long?atualPessoaJuridicaId = null; if (string.IsNullOrEmpty(novoClienteTipo)) { retorno.ValidationResult.Add( new DomainValidation.Validation.ValidationError( "O tipo (pf= pessoa física / pj= pessoa jurídica) não foi informado.")); return(retorno); } if (atualClienteId.HasValue) { if (string.IsNullOrEmpty(atualClienteTipo)) { retorno.ValidationResult.Add( new DomainValidation.Validation.ValidationError( "O tipo (pf= pessoa física / pj= pessoa jurídica) do cliente atual não foi informado.")); return(retorno); } if (atualClienteTipo.ToUpper().Trim() == "PF") { atualPessoaFisicaId = atualClienteId; } else if (atualClienteTipo.ToUpper().Trim() == "PJ") { atualPessoaJuridicaId = atualClienteId; } else { retorno.ValidationResult.Add( new DomainValidation.Validation.ValidationError( "O tipo informado do cliente atual não corresponde com os valores esperados: (pf= pessoa física / pj= pessoa jurídica)")); return(retorno); } } if (novoClienteTipo.ToUpper().Trim() == "PF") { pessoaFisicaId = novoClienteId; } else if (novoClienteTipo.ToUpper().Trim() == "PJ") { pessoaJuridicaId = novoClienteId; } else { retorno.ValidationResult.Add( new DomainValidation.Validation.ValidationError( "O tipo informado não corresponde com os valores esperados: (pf= pessoa física / pj= pessoa jurídica)")); return(retorno); } // Aqui vou deletar o cliente atual do ParteEnvolvidas if (atualPessoaFisicaId.HasValue || atualPessoaJuridicaId.HasValue) { _servicoAtividadeParteEnvolvidaServico.Excluir(atividadeId, atualPessoaFisicaId, atualPessoaJuridicaId); } var atividade = _servicoAtividade.ObterPorId(atividadeId); if (atividade.AtividadeTipoId == 6) { var atividadeParteEnvolvidaCliente = _servicoAtividadeParteEnvolvidaServico.ObterPorAtividadeId(atividadeId); foreach (var parteEnvolvidada in atividadeParteEnvolvidaCliente) { if (parteEnvolvidada.TipoParteEnvolvida.ToLower().Trim() == "r") { parteEnvolvidada.SetarPessoaFisicaId(pessoaFisicaId); parteEnvolvidada.SetarPessoaJuridicaId(pessoaJuridicaId); _servicoAtividadeParteEnvolvidaServico.Atualizar(parteEnvolvidada); } } _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId, TipoParteEnvolvida.ClienteTratado.Value, false); } else { if (_servicoAtividadeParteEnvolvidaServico.PossuiClienteContato(atividadeId)) { _servicoAtividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividadeId, pessoaFisicaId, pessoaJuridicaId, null, userId, TipoParteEnvolvida.ClienteTratado.Value, null, null)); } else { if (clienteSomenteContato) { _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId, TipoParteEnvolvida.ClienteContato.Value); if (atividade != null) { if (atividade.AtendimentoId.HasValue) { _servicoAtendimento.AtualizarClienteSomenteContato((long)atividade.AtendimentoId, true, clienteTipoContato); } } } else { _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId, TipoParteEnvolvida.ClienteTratado.Value); } } } retorno.PessoaJuridicaId = pessoaJuridicaId; retorno.PessoaFisicaId = pessoaFisicaId; retorno.AtividadeId = atividadeId; return(retorno); }