public IssueEntity Crear(DirectoryInfo directorio) { _ScriptList = null; _ScriptList = new List <ScriptEntity>(); string prefix; for (int i = 1; i <= 9999; i++) { prefix = i.ToString().PadLeft(4, '0'); FileInfo[] files = directorio.GetFiles(prefix + kFilter); if (files.Length == 0) { break; } ProcesarScripts(directorio.Name, prefix, files); } //TODO: validar que no existan mas archivos que los procesados. IssueEntity incidencia = new IssueEntity(); incidencia.Secuencia = 1; try { incidencia.Nro = Convert.ToInt32(directorio.Name); incidencia.PathFisico = directorio.FullName; } catch (FormatException fe) { // ignoramos el directorio que esta mal nombrado return(null); //TODO: podemos poner un aviso al usuario de los directorios no procesados. } incidencia.Nombre = directorio.Name; foreach (ScriptEntity s in _ScriptList) { s.IssueEntity = incidencia; incidencia.Scripts.Add(s.Secuencia, s); } _ScriptList.Clear(); return(incidencia); }
public void Merge(IssueEntity incidencia) { if (string.IsNullOrEmpty(this.PathFisico)) { this.PathFisico = incidencia.PathFisico; } foreach (var se in this.Scripts) //por cada script entry { se.Value.Merge(incidencia.Scripts[se.Key]); } this.Nro = incidencia.Nro; this.Secuencia = incidencia.Secuencia; this.Nombre = incidencia.Nombre; }