private void button2_Click(object sender, EventArgs e) { string itemFile = ""; string documentoActual = ""; string archivoIncidencias = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\procesados.txt"; ArrayList logArchivosProcesados = new ArrayList(); try { this.Cursor = Cursors.WaitCursor; lblTareaActual.Text = "Calculando archivos no procesados..."; pgbAvance.Value = 0; using (RPPMain.CsvFileReader reader1 = new RPPMain.CsvFileReader(archivoIncidencias)) { RPPMain.CsvRow row1 = new RPPMain.CsvRow(); while (reader1.ReadRow(row1)) { itemFile = row1[0].ToString().Split('-')[1].Trim(); string documentFullFileName = txtDirectorioDocumentos.Text + "\\" + itemFile; string strDirectorioDocumentos = txtDirectorioDocumentos.Text; //foreach( ) pgbAvance.Value++; } } string archivoLog = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\NoProcesados.txt"; if (File.Exists(archivoLog)) { File.Delete(archivoLog); } using (StreamWriter sw = new StreamWriter(archivoLog)) { foreach (string itemFileA in logArchivosProcesados) { sw.WriteLine(itemFileA); } } this.Cursor = Cursors.Default; MessageBox.Show("Proceso finalizado correctamente", "Proceso Finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information); pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; } catch (System.Exception ex) { this.Cursor = Cursors.Default; pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; MessageBox.Show("Ocurrió un error" + ex.Message + ex.StackTrace, "Proceso Fallido", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnValidar_Click(object sender, EventArgs e) { RPPMain.SharepointLibrary spLibrary = null; try { spLibrary = new RPPMain.SharepointLibrary(txtLibreriaSharePoint.Text, "Seccion Primera", "autostore", "Rpp1234"); } catch (System.Exception ex) { MessageBox.Show("Ocurrió un error al intentar conectarse a Sharepoint: " + ex.Message, "Conexión Fallida", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string itemFile = ""; string documentoActual = ""; string archivoIncidencias = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\archivosConIncidencias.txt"; try { this.Cursor = Cursors.WaitCursor; lblTareaActual.Text = "Validando archivos con incidencias..."; pgbAvance.Value = 0; using (RPPMain.CsvFileReader reader1 = new RPPMain.CsvFileReader(archivoIncidencias)) { RPPMain.CsvRow row1 = new RPPMain.CsvRow(); while (reader1.ReadRow(row1)) { itemFile = "Libro_" + row1[0].Substring(0, 4) + "\\Libro_" + row1[0].Substring(0, 12) + ".out"; string documentFullFileName = txtDirectorioDocumentos.Text + "\\" + itemFile; string strDirectorioDocumentos = txtDirectorioDocumentos.Text; try { spLibrary.ValidateLibraryItem(strDirectorioDocumentos, itemFile, false); } catch (Microsoft.SharePoint.Client.ServerException ex) { logArchivosProcesados.Add(itemFile + " - " + ex.Message); } catch (System.Exception ex) { logArchivosProcesados.Add(itemFile + " - " + ex.Message); } pgbAvance.Value++; } } string archivoLog = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\observaciones.txt"; if (File.Exists(archivoLog)) { File.Delete(archivoLog); } using (StreamWriter sw = new StreamWriter(archivoLog)) { foreach (string itemFileA in logArchivosProcesados) { sw.WriteLine(itemFileA); } } this.Cursor = Cursors.Default; MessageBox.Show("Proceso de importación finalizado correctamente", "Proceso Finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information); pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; } catch (System.Exception ex) { this.Cursor = Cursors.Default; pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; MessageBox.Show("Ocurrió un error al intentar importar el documento[" + documentoActual + "] : " + ex.Message + ex.StackTrace, "Importación Fallida", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnInsertarDocumentos_Click(object sender, EventArgs e) { if (txtLibreriaSharePoint.Text == "Seleccionar...") { MessageBox.Show("Debe especificar el Repositorio de Sharepoint para la importación Documentos", "Repositorio de Sharepoint", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (txtDirectorioDocumentos.Text == "Seleccionar...") { MessageBox.Show("Debe seleccionar el directorio donde se encuentran los archivos .out para importar", "Directorio de Documentos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (txtDirectorioDocumentos.Text == "Seleccionar...") { MessageBox.Show("Debe seleccionar el directorio donde se encuentran las imágenes .tif para importar", "Directorio de Documentos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (!Directory.Exists(txtDirectorioDocumentos.Text)) { MessageBox.Show("El directorio seleccionado para ubicación de documentos no existe, por favor verifiquelo", "Directorio Inválido", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (!Directory.Exists(txtDirectorioImagenes.Text)) { MessageBox.Show("El directorio seleccionado para ubicación de imágenes no existe, por favor verifiquelo", "Directorio Inválido", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } RPPMain.SharepointLibrary spLibrary = null; try { spLibrary = new RPPMain.SharepointLibrary(txtLibreriaSharePoint.Text, "Seccion Primera", "autostore", "Rpp1234"); } catch (System.Exception ex) { MessageBox.Show("Ocurrió un error al intentar conectarse a Sharepoint: " + ex.Message, "Conexión Fallida", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string documentoActual = ""; string itemFile = ""; ArrayList lstArchivosImagenes = new ArrayList(); try { lblTareaActual.Text = "Validando archivos de imágenes..."; pgbAvance.Value = 0; pgbAvance.Maximum = lstDocumentos.Items.Count; lstArchivosNoEncontrados.Items.Clear(); documentoActual = "Paso1"; for (int i = 0; i < lstDocumentos.Items.Count; i++) { #region Revisar try { if (lstDocumentos.GetItemChecked(i) == false || chkReprocesar.Checked) { itemFile = lstDocumentos.Items[i].ToString(); string documentFullFileName = txtDirectorioDocumentos.Text + "\\" + itemFile; documentoActual = "Paso2:" + documentFullFileName; using (RPPMain.CsvFileReader reader = new RPPMain.CsvFileReader(documentFullFileName)) { RPPMain.CsvRow row = new RPPMain.CsvRow(); while (reader.ReadRow(row)) { if (row[1] != "Página" && row[1] != "Página" && row[1].IndexOf("gina") > 0 && row[1].IndexOf("ginales") == 0) { string x = ""; } if (row[1] == "Página" || row[1] == "Página") { documentoActual = "Paso3"; string[] valores = row[2].Split('\\'); if (valores.Length > 0) { string imagenFileName = valores[valores.Length - 1]; documentoActual = "Paso4:" + valores.Length.ToString(); string imageFullFileName = txtDirectorioImagenes.Text + "\\" + valores[valores.Length - 2] + "\\" + imagenFileName; documentoActual = "Paso5"; bool existe = false; foreach (string[] imagen in lstArchivosImagenes) { if (imagen[0] == imagenFileName) { int numeroInstancias = int.Parse(imagen[1]) + 1; imagen[1] = numeroInstancias.ToString(); existe = true; break; } } if (!existe) { string[] imagenObject = new string[2]; imagenObject[0] = imagenFileName; imagenObject[1] = "1"; lstArchivosImagenes.Add(imagenObject); } if (!File.Exists(imageFullFileName)) { lstArchivosNoEncontrados.Items.Add(itemFile + " Archivo de imágen no existe"); } //throw new System.Exception(string.Format("El archivo de imágen [{0}] ligado al archivo out [{1}] no existe en la ruta de imágenes especificada.", imageFullFileName, documentFullFileName)); } else { lstArchivosNoEncontrados.Items.Add(itemFile + "Archivo de imágen no definido"); } //throw new System.Exception(string.Format("El archivo de imágen ligado al archivo out [{0}] no se especifico.", documentFullFileName)); break; } } } } } catch { lstArchivosNoEncontrados.Items.Add(itemFile + " Con error en estructura"); } #endregion pgbAvance.Value++; } #region Imagenes no referenciadas lblNumeroImagenes.Text = lstArchivosImagenes.Count + " Imágenes"; foreach (string[] imagen in lstArchivosImagenes) { lstImagenes.Items.Add(imagen[0] + " - " + imagen[1]); } string[] tifFiles = Directory.GetFiles(folderImages.SelectedPath, "*.tif", SearchOption.AllDirectories); string archivoLogNoRef = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\imagenesNoReferenciadasA.txt"; using (StreamWriter sw = new StreamWriter(archivoLogNoRef)) { foreach (string tifFile in tifFiles) { bool tifFound = false; foreach (string[] imagen in lstArchivosImagenes) { string imagenFullPath = folderImages.SelectedPath + "\\" + imagen[0].Substring(0, 10) + "\\" + imagen[0]; if (tifFile == imagenFullPath) { tifFound = true; break; } } if (!tifFound) { lstImagenesNoReferenciadas.Items.Add(tifFile); sw.WriteLine(tifFile); } } } lblTotalArchivosNoReferenciados.Text = lstImagenesNoReferenciadas.Items.Count.ToString(); documentoActual = "Paso6"; if (lstArchivosNoEncontrados.Items.Count > 0) { string archivoNoRef = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\imagenesNoReferenciadas.txt"; if (File.Exists(archivoNoRef)) { File.Delete(archivoNoRef); } int countFiles = 0; using (StreamWriter sw = new StreamWriter(archivoNoRef)) { foreach (string itemFileA in lstArchivosNoEncontrados.Items) { countFiles++; sw.WriteLine(countFiles.ToString() + " - " + itemFileA); } } DialogResult result = MessageBox.Show("No se encontraron los archivos de imágenes referenciadas en algunos de los documentos seleccionados, ¿ Procesar el resto de los documentos ?", "Archivos de Documento sin Imágen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (result == DialogResult.No) { pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; return; } } #endregion #region Importar this.Cursor = Cursors.WaitCursor; lblTareaActual.Text = "Importando documentos e imágenes al repositorio..."; pgbAvance.Value = 0; logArchivosProcesados.Clear(); int numeroProcesadosReal = 0; for (int i = 0; i < lstDocumentos.Items.Count; i++) { if (lstDocumentos.GetItemChecked(i) == false || chkReprocesar.Checked) { itemFile = lstDocumentos.Items[i].ToString(); documentoActual = itemFile; string documentFullFileName = txtDirectorioDocumentos.Text + "\\" + itemFile; using (RPPMain.CsvFileReader reader = new RPPMain.CsvFileReader(documentFullFileName)) { RPPMain.CsvRow row = new RPPMain.CsvRow(); while (reader.ReadRow(row)) { if (row.Count > 0) { if (row[1] == "Página" || row[1] == "Página") { string[] valores = row[2].Split('\\'); if (valores.Length > 0) { string imageFullFileName = txtDirectorioImagenes.Text + "\\" + valores[valores.Length - 2] + "\\" + valores[valores.Length - 1]; if (File.Exists(imageFullFileName)) { string strDirectorioDocumentos = txtDirectorioDocumentos.Text; string strDirectorioImagenes = txtDirectorioImagenes.Text + "\\" + valores[valores.Length - 2]; try { spLibrary.InsertLibraryItem(strDirectorioDocumentos, strDirectorioImagenes, valores[valores.Length - 1], itemFile, chkIgnorarCamposFaltantes.Checked); lstDocumentos.SetItemChecked(i, true); logArchivosProcesados.Add(itemFile + "," + imageFullFileName); numeroProcesadosReal++; this.lblTareaActual.Text = numeroProcesadosReal.ToString(); this.lblTareaActual.Refresh(); } catch (Microsoft.SharePoint.Client.ServerException ex) { lstArchivosNoEncontrados.Items.Add(itemFile + " - " + ex.Message); } catch (System.Exception ex) { lstArchivosNoEncontrados.Items.Add(itemFile + " - " + ex.Message); } } } break; } } } } } pgbAvance.Value++; } #endregion #region Escribir archivos string archivoLog = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\outUpload.txt"; if (File.Exists(archivoLog)) { File.Delete(archivoLog); } int countFilesNR = 0; using (StreamWriter sw = new StreamWriter(archivoLog)) { foreach (string itemFileA in logArchivosProcesados) { countFilesNR++; sw.WriteLine(countFilesNR.ToString() + " - " + itemFileA); } } this.Cursor = Cursors.Default; MessageBox.Show("Proceso de importación finalizado correctamente", "Proceso Finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information); pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; #endregion } catch (System.Exception ex) { this.Cursor = Cursors.Default; pgbAvance.Value = 0; lblTareaActual.Text = "En Espera..."; MessageBox.Show("Ocurrió un error al intentar importar el documento[" + documentoActual + "] : " + ex.Message + ex.StackTrace, "Importación Fallida", MessageBoxButtons.OK, MessageBoxIcon.Error); } }