private static SolicitudArchivo FabricarSolicitudArchivo(Solicitud s, Area a, string nombreArchivo, int i) { SolicitudArchivo sa = new SolicitudArchivo(); sa.Area = a; sa.SarID = String.Concat(s.Ambiente.Abreviatura, "-", a.Abreviatura, "-", s.Proyecto.Codigo, "-", s.FechaCreacion.ToString("ddMMyy"), "-", i.ToString()); sa.Archivos = new List <Archivo>(); Archivo archivo = new Archivo(); archivo.Nombre = nombreArchivo; archivo.Id = i; sa.Archivos.Add(archivo); return(sa); }
/// <summary> /// Lista los archivos de una solicitud por cada area. En el caso de areas que no tengan correos /// especificados (Configuraciones), se agrupan los archivos de esta area como un solo Sar ID /// </summary> /// <param name="s">Solicitd</param> /// <returns>Lista de archivos de una solicitud</returns> public static List <SolicitudArchivo> ListarArchivos(Solicitud s) { List <SolicitudArchivo> sas = new List <SolicitudArchivo>(); Area a = null; string nombreArchivo = String.Empty; //int j = 0; for (int i = 1; i <= 10; i++) { a = ObtenerArea(s, i); nombreArchivo = ObtenerNombreArchivo(s, i); if (a.Id > 0 && !String.IsNullOrEmpty(nombreArchivo)) { //j++; if (a.Correos.Count() > 0) { SolicitudArchivo sa = FabricarSolicitudArchivo(s, a, nombreArchivo, i); sas.Add(sa); } else { // Un pase de configuración, usualmente se adjuntan mas de un archivo // Buscar si ya existe la configuracion en la lista de archivos SolicitudArchivo saBuscado = sas.FirstOrDefault(p => p.Area.Id == a.Id); if (saBuscado != null) { // Si existe, entonces agregar el archivo solamente Archivo archivo = new Archivo(); archivo.Nombre = nombreArchivo; archivo.Id = i; saBuscado.Archivos.Add(archivo); } else { saBuscado = FabricarSolicitudArchivo(s, a, nombreArchivo, i); sas.Add(saBuscado); } } } } return(sas); }