コード例 #1
0
        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);
        }