Esempio n. 1
0
        /// <summary>
        /// Obtém ou cria um novo envio. Se existirem envios não enviados, os busca para preencher a tela ou para que sejam enviados.
        /// Se não existem envios enviados, cria um novo envio baseado no último envio que foi enviado.
        /// Caso nunca tenha havido um envio, traz um objeto novo obtendo os dados da tela.
        /// </summary>
        /// <param name="obterDadosDaTela">Caso true, obtém os dados do objeto a partir da tela. Caso false, obtém o objeto clone ou um novo objeto.</param>
        /// <param name="informe">Caso já existe um informe buscado, passá-lo como esse parâmetro para evitar mais uma consulta ao banco.</param>
        /// <returns></returns>
        private classes.EnvioInforme ObterObjeto(bool obterDadosDaTela, classes.Informe informe = null)
        {
            informe = informe ?? new ManterInforme().ObterPorId(int.Parse(Request["Id"]));

            classes.EnvioInforme envio;

            if (informe.Envios.Any(x => !x.Enviado()))
            {
                // Caso já tenha envios não enviados, busca os dados desse envio e preenche a tela.
                envio = informe.Envios.FirstOrDefault(x => !x.Enviado());
            }
            else
            {
                envio = new classes.EnvioInforme();

                // Busca o último envio, caso existente.
                var ultimoEnvio = informe.Envios.LastOrDefault();

                if (ultimoEnvio != null)
                {
                    Mapper.Map(ultimoEnvio, envio);
                }
            }

            // Vai que... né?
            if (envio == null)
            {
                envio = new classes.EnvioInforme();
            }


            // Caso esteja chamando para obter os dados da tela.
            if (obterDadosDaTela)
            {
                envio.Informe = new ManterInforme().ObterPorId(int.Parse(Request["Id"]));
                envio.Usuario = ucLupaUsuario.SelectedUser;

                // Buscar perfis; níveis ocupacionais e UFs das permissões.
                envio.Perfis             = ucPermissoes.ObterPerfisSelecionados();
                envio.NiveisOcupacionais = ucPermissoes.ObterNiveisOcupacionaisSelecionados();
                envio.Ufs = ucPermissoes.ObterUfsSelecionadas();
            }

            return(envio);
        }
Esempio n. 2
0
        private void PreencherDados(classes.Informe informe)
        {
            var envio = ObterObjeto(false, informe);

            if (envio.Usuario != null)
            {
                ucLupaUsuario.SelectedUser = envio.Usuario;
            }

            if (envio.Perfis != null && envio.Perfis.Any())
            {
                ucPermissoes.SelecionarPerfis(envio.Perfis);
            }

            if (envio.NiveisOcupacionais != null && envio.NiveisOcupacionais.Any())
            {
                ucPermissoes.SelecionarNiveisOcupacionais(envio.NiveisOcupacionais);
            }

            if (envio.Ufs != null && envio.Ufs.Any())
            {
                ucPermissoes.SelecionarUfs(envio.Ufs);
            }
        }
Esempio n. 3
0
 public EnvioInforme(Informe informe)
 {
     Informe = informe;
 }