/// <summary> /// Procura dentro da propriedade do objeto todos os arquivo que estiverem "pendurados" nele /// </summary> /// <param name="propriedadeObjeto">Objeto a ser verificado</param> /// <param name="arquivos">Lista de arquivos pertencentes ao objeto</param> public static void ExtraiDocumentosObjeto(PropriedadeObjeto propriedadeObjeto, ref List <AcaoArquivo> arquivos) { if (arquivos == null) { arquivos = new List <AcaoArquivo>(); } if (propriedadeObjeto.Acoes != null && propriedadeObjeto.Acoes.Count > 0) { foreach (PropriedadeAcao propriedadeAcao in propriedadeObjeto.Acoes) { if (propriedadeAcao.Arquivos != null && propriedadeAcao.Arquivos.Count > 0) { foreach (PropriedadeObjeto lPropriedadeObjeto in propriedadeAcao.Arquivos) { if (lPropriedadeObjeto.Acoes != null && lPropriedadeObjeto.Acoes.Count > 0) { ExtraiDocumentosObjeto(lPropriedadeObjeto, ref arquivos); } AcaoArquivo arquivo = null; if (!arquivos.Any(a => a.TipoAcao == propriedadeAcao.TipoAcao)) { arquivo = new AcaoArquivo() { TipoAcao = propriedadeAcao.TipoAcao, DataExecucao = propriedadeAcao.ExecutadoEm, IdArquivos = new List <int>() }; arquivos.Add(arquivo); } else { arquivo = arquivos.First(a => a.TipoAcao == propriedadeAcao.TipoAcao); } arquivo.IdArquivos.Add(lPropriedadeObjeto.IdArquivo); } } } } }
/// <summary> /// Evento que formata os arquivos encontrados e exibe na tela /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void RptArquivo_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e != null && (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)) { AcaoArquivo acao = (AcaoArquivo)e.Item.DataItem; LinkButton btnPropriedadeDownloadArquivo = (LinkButton)e.Item.FindControl("BtnPropriedadeDownloadArquivo"); TextBox txtPropriedadeDataAcao = (TextBox)e.Item.FindControl("TxtPropriedadeDataAcao"); string ids = string.Empty; foreach (int id in acao.IdArquivos) { ids += ids == string.Empty ? id.ToString() : "," + id.ToString(); } txtPropriedadeDataAcao.Text = acao.DataExecucao.HasValue ? acao.DataExecucao.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty; btnPropriedadeDownloadArquivo.Text = acao.TipoAcao.HasValue ? Dominio.ValorTextoDe(acao.TipoAcao) : TEXTO_OUTROS; btnPropriedadeDownloadArquivo.CommandArgument = ids; } }