public async Task <DadosInternosViewModel> ObterDadosInternosProcesso(int processoId, Guid userGuid) { var retorno = new DadosInternosViewModel(); var processo = await _processoRepositorio.ObterProcessoTarefasAndPolos(processoId); retorno = _mapper.Map <DadosInternosViewModel>(processo); #region Tarefas retorno.Tarefas = _mapper.Map <List <Atividade> >(processo.Audiencias); retorno.Tarefas.AddRange(_mapper.Map <List <Atividade> >(processo.Prazos)); var li = await _profissionalService.ListarProfissionais(userGuid); var liFuncionarios = _mapper.Map <List <FuncionarioViewModel> >(li); foreach (var i in retorno.Tarefas) { var executor = liFuncionarios.FirstOrDefault(x => x.Id == i.IdExecutor); if (executor != null) { i.Executor = new Executor { Id = executor.Id, Cargo = executor.Cargo, Ativo = executor.Ativo, Atividades = executor.Atividades, Deletable = executor.Deletable, Nome = executor.Nome } } ; } #endregion #region Hierarquia retorno.Hierarquia = _mapper.Map <HierarquiaViewModel>(processo); #endregion #region Envolvimento retorno.clienteEnvolvido = retorno.Envolvidos?.FirstOrDefault(x => x.Parte.IdCliente == processo.IdCliente); if (retorno.clienteEnvolvido != null) { retorno.Envolvidos.Remove(retorno.Envolvidos.FirstOrDefault(x => x.Parte.IdCliente == processo.IdCliente)); } #endregion return(retorno); }