private async Task <InformacaoInstituicao> ObterInformacaoInstituicao(Instituicao instituicao, UsuarioADE usuario, UnitOfWork unitOf)
        {
            unitOfWork          = unitOfWork ?? new UnitOfWork(context);
            _servicoCurso       = new ServicoCurso(ref unitOfWork);
            _servicoInstituicao = new ServicoInstituicao(ref unitOfWork);

            InformacaoInstituicao infoInstituicao = new InformacaoInstituicao()
            {
                QuantidadeCursosInstituicao = _servicoCurso.Filtrar(x => x.IdInstituicao == instituicao.Identificador).Result.Count,
                QuantidadeAlunosInstituicao = await CountUsuarioByInstituicao(instituicao.Identificador),
                Instituicao          = instituicao,
                InstituicaoDoUsuario = usuario.IdInstituicao == instituicao.Identificador ? true : false
            };

            return(infoInstituicao);
        }
        private async Task <List <InformacaoInstituicao> > ObterInformacaoInstituicao(List <Instituicao> instituicoes, UsuarioADE usuario)
        {
            unitOfWork          = unitOfWork ?? new UnitOfWork(context);
            _servicoCurso       = new ServicoCurso(ref unitOfWork);
            _servicoInstituicao = new ServicoInstituicao(ref unitOfWork);
            List <InformacaoInstituicao> infoInstituicoes = new List <InformacaoInstituicao>();

            foreach (Instituicao instituicao in instituicoes)
            {
                int QuantidadeCursos = _servicoCurso.Filtrar(x => x.IdInstituicao == instituicao.Identificador).Result.Count;
                int QuantidadeAlunos = await CountUsuarioByInstituicao(instituicao.Identificador);

                bool InstituicaoDoUsuario             = usuario.IdInstituicao == instituicao.Identificador ? true : false;
                InformacaoInstituicao infoInstituicao = new InformacaoInstituicao(instituicao, QuantidadeAlunos, QuantidadeCursos, InstituicaoDoUsuario);
                infoInstituicoes.Add(infoInstituicao);
            }
            return(infoInstituicoes);
        }
        private async Task <InformacaoInstituicao> ParseVisualizacaoInstituicaoView(int idInstituicao)
        {
            UsuarioADE usuario = await ObterUsuarioComDadosPessoais();

            Instituicao instituicao;

            unitOfWork          = unitOfWork ?? new UnitOfWork(context);
            _servicoCurso       = new ServicoCurso(ref unitOfWork);
            _servicoInstituicao = new ServicoInstituicao(ref unitOfWork);

            if (usuario.IdInstituicao > 0 && idInstituicao == 0)
            {
                instituicao = await _servicoInstituicao.BuscarPorId(usuario.IdInstituicao);
            }
            else
            {
                instituicao = await _servicoInstituicao.BuscarPorId(idInstituicao);
            }
            instituicao.Cursos = await _servicoCurso.Filtrar(x => x.IdInstituicao == instituicao.Identificador);

            InformacaoInstituicao InfoInstituicao = await ObterInformacaoInstituicao(instituicao, usuario, unitOfWork);

            return(InfoInstituicao);
        }