/// <summary>
        ///     Recupera Projeto de acordo com um modelo, com um certo Oid.
        /// </summary>
        /// <param name="modelo">Dicionário de Propriedades requisitadas.</param>
        /// <param name="projetoOid">Oid do Projeto a ser recuperado.</param>
        /// <returns>Obejto Dinâmico com as propriedades requisitadas.</returns>
        public ObjetoDinamico ConsultarProjeto(ModeloDinamico <ProjetoDto> modelo, Guid projetoOid)
        {
            ObjetoDinamico projetoDto = modelo.Objeto(ProjetoDao.Instancia.ConsultarProjetoPorOid(projetoOid,
                                                                                                  o => o.Gerente.Usuario.Person,
                                                                                                  o => o.EmpresaInstituicao1
                                                                                                  ).ToDto());

            return(projetoDto);
        }
        /// <summary>
        ///     Recupera projetos de acordo com um modelo, filtrados por propriedades.
        /// </summary>
        /// <param name="modelo">Dicionário de Propriedades requisitadas.</param>
        /// <param name="filtro">Dicionário de Propriedades para filtrar os objetos.</param>
        /// <returns>Lista de Obejtos Dinâmicos com as propriedades requisitadas.</returns>
        public List <ObjetoDinamico> ListarProjetos(ModeloDinamico <ProjetoDto> modelo, Filtro <ProjetoDto> filtro)
        {
            List <ObjetoDinamico> projetosDto = (from p in ProjetoDao.Instancia.ListarProjetos()
                                                 select p.ToDto())
                                                .Filtra(filtro)
                                                .Select(modelo.Objeto)
                                                .ToList();

            return(projetosDto);
        }
Example #3
0
        public ActionResult ListarProjetosMacros(Guid?id = null)
        {
            ModeloDinamico <ProjetoDto> modelo = null;
            NameValueCollection         queryString;

            queryString = new NameValueCollection(Request.QueryString);

            try
            {
                string campos = queryString.Get("campos");

                if (campos != null)
                {
                    modelo = new ModeloDinamico <ProjetoDto>(campos);
                    queryString.Remove("campos");
                }
            }
            catch (PropriedadeNaoExisteException e)
            {
                // Será que deve ser 400 ou 409 nesse caso?
                Response.StatusCode = 400;
                return(Json(new { message = e.Message }, JsonRequestBehavior.AllowGet));
            }

            if (id.HasValue)
            {
                dynamic projeto;

                if (modelo == null)
                {
                    projeto = ProjetoBo.Instancia.ConsultarProjeto(id.Value);
                }
                else
                {
                    projeto = ProjetoBo.Instancia.ConsultarProjeto(modelo, id.Value);
                }

                return(Json(new { projeto }, JsonRequestBehavior.AllowGet));
            }
            dynamic projetos;

            try
            {
                Filtro <ProjetoDto> filtro = queryString.CriarFiltro <ProjetoDto>();

                // Somente projetos Macros
                filtro.Add("ProjetoMacroOid", null);

                if (modelo == null)
                {
                    projetos = ProjetoBo.Instancia.ListarProjetos(filtro);
                }
                else
                {
                    projetos = ProjetoBo.Instancia.ListarProjetos(modelo, filtro);
                }
            }
            catch (PropriedadeNaoExisteException e)
            {
                Response.StatusCode = 409;
                return(Json(new { message = e.Message }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { projetos }, JsonRequestBehavior.AllowGet));
        }