/// <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); }
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); } }
public EnvioInforme(Informe informe) { Informe = informe; }