public async Task <AudienciaViewModel> ObterAudiencia(Guid userGuid, int?audienciaId, int?idCaso) { AudienciaViewModel vm = new AudienciaViewModel(); HierarquiaViewModel hierarquiaVM = new HierarquiaViewModel(); Audiencia audiencia = new Audiencia(); if (audienciaId.HasValue && audienciaId.Value > 0) { audiencia = await _audienciaRepositorio.Obter(audienciaId.Value); } if (idCaso.HasValue && idCaso.Value > 0) { audiencia.IdProcesso = idCaso.Value; } vm = _mapper.Map <AudienciaViewModel>(audiencia); vm.HoraAtividade = audiencia.DataAtividade; if (audiencia.IdProcesso.HasValue && audiencia.IdProcesso > 0) { ProcessoBase caso = await _processoRepositorio.Obter(audiencia.IdProcesso.Value); vm.Processo = string.IsNullOrEmpty(caso.Titulo) ? "Caso sem título. Cliente: " + caso.ClienteNome : caso.Titulo; vm.TipoDoCaso = caso.Tipo; vm.ForoDoCaso = caso.ForoHierarquia; hierarquiaVM.ProcessoId = caso.Id; vm.IDForoDoCaso = caso.IdForoVara; vm.LocalAudiencia = caso.ForoHierarquia; } //if (audiencia.IdForo.HasValue && audiencia.IdForo.Value > 0) //{ // GrupoForo grupoForoSelecionado = await _hierarquiaService.ObtemPorForo(userGuid, audiencia.IdForo.Value); // vm.IdForo = audiencia.IdForo; // vm.IdGrupoFamilia = (int)grupoForoSelecionado.Instancia; // vm.IdGrupoForo = grupoForoSelecionado.IdGrupoPai > 0 ? grupoForoSelecionado.IdGrupoPai : grupoForoSelecionado.Id; // vm.Regiao = grupoForoSelecionado.Regiao; // vm.UF = grupoForoSelecionado.UF; //} if (!idCaso.HasValue || idCaso.Value < 1) { vm.PossiveisClientesDefinitivos = await _clienteService.ListarClientes(userGuid); } var taskExecutores = _executorService.ListaPossiveisExecutores(userGuid, Domain.Models.TipoDeTarefaEnum.Audiencia); var taskParticipantes = _profissionalService.ListarProfissionais(userGuid); var taskCategorias = _categoriaDeProfissioalService.Lista(userGuid); int?idTituloPai = null; if (audiencia.IdPai.HasValue && audiencia.IdPai > 0) { Audiencia pai = await _audienciaRepositorio.Obter(audiencia.IdPai.Value); idTituloPai = pai.IdTituloCobranca; } var taskTitulos = _tituloCobrancaService.ListaAsync(userGuid, Domain.Models.TipoDeTarefaEnum.Audiencia, idTituloPai); await Task.WhenAll(taskExecutores, taskParticipantes, taskCategorias, taskTitulos); vm.PossiveisExecutores = taskExecutores.Result; vm.TodosPossiveisExecutores = taskExecutores.Result; vm.PossiveisParticipantes = taskParticipantes.Result; vm.PossiveisCategorias = taskCategorias.Result; vm.PossiveisTitulos = taskTitulos.Result; return(vm); }