public List <Resultado> buscarDocumento(string User, string Password, int appId, int doctypeId, int queryId, Datos[] data) { ClaseColas[] allQueue = null; Resultado resultado = new Resultado(); List <Resultado> lista = new List <Resultado>(); log = new Bitacorizador(); int session = 0; string[] fldValue = null; Ewsm ePower = null; Interfaces.Collection Documento; ePower = null; var list = new List <ClaseColas>(); try { ePower = new Ewsm(); log.LogInfo("Inicia Login hacia ePower"); try { session = ePower.doLogin(User, Password, "eAccess"); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al autenticarse con ePower: Imposible autenticarse con ePower, verifique sus credenciales y conexión a ePower. " + ex.Message); } log.LogInfo("Se busca el documento"); string connectionString = Properties.Settings.Default.ConnectionString; string queryString = "SELECT QUEPATH, QUEUENAME FROM QUEUE WHERE APPLICATIONID = " + appId; using (OracleConnection connection = new OracleConnection(connectionString)) { OracleCommand command = new OracleCommand(queryString, connection); connection.Open(); OracleDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { list.Add(new ClaseColas { queuepath = reader.GetString(0), queuename = reader.GetString(1) }); } allQueue = list.ToArray(); log.LogInfo("Leyendo consulta y guardando en arreglo"); } finally { reader.Close(); log.LogInfo("Cerrando conexion a base de datos"); } } fldValue = new string[data.Length]; for (int i = 0; i < data.Length; i++) { fldValue[i] = data[i].ValorString; } ePWS.WS.Type.QueryInst queryinst = ePower.doExecuteQuery(session, appId, doctypeId, queryId, 500, fldValue, null, null); if (queryinst.DocInst != null) { log.LogInfo("Encontro datos y anidando"); for (int j = 0; j < queryinst.DocInst.Length; j++) { int DocId = queryinst.DocInst[j].DocId; var resultadoDto = new List <ResultDetalle>(); var resultadoCdo = new List <ResultadoCont>(); lista.Add(new Resultado() { docId = DocId, ItemsDetalle = resultadoDto, ItemsContenido = resultadoCdo }); Documento = ePower.getFullDocument(session, appId, doctypeId, queryId, DocId); for (int k = 0; k < queryinst.DocInst[j].Fields.Length; k++) { string nombreCampo = queryinst.Column[k].Name; string valor = queryinst.DocInst[j].Fields[k].Value.ToString(); resultadoDto.Add(new ResultDetalle { campos = nombreCampo, valores = valor }); } foreach (var item in Documento.References) { if (item.FileName != "") { ePWS.WS.Type.Tab[] TabName; TabName = ePower.getTabStruct(session, doctypeId, queryId, DocId); string nombretab = ePower.getTabName(TabName, item.ParentId); if (item.FileName != "") { string rutacola = ""; foreach (var que in allQueue) { if (que.queuename == item.QueueName) { rutacola = que.queuepath; break; } } var nombre_archivo = Path.GetRandomFileName().Replace(".", "x").ToUpper() + "." + item.OriginalExtension; string rutaoriginal = Path.Combine(Path.Combine(Path.Combine(Path.Combine(rutacola, item.FileName.Substring(0, 2)), item.FileName.Substring(2, 2)), item.FileName.Substring(4, 2)), item.FileName.Substring(6, 2) + "." + item.QueueName); string rutadestino = Path.Combine(Properties.Settings.Default.rutaDestino, nombre_archivo); log.LogInfo("ruta " + rutadestino); log.LogInfo("ruta " + rutaoriginal); if (File.Exists(rutaoriginal)) { log.LogInfo("Encontre ruta original... copiando"); File.Copy(rutaoriginal, rutadestino, true); } else { log.LogInfo("no existe"); } resultadoCdo.Add(new ResultadoCont { cejilla = nombretab, ruta = nombre_archivo, etiqueta = item.DisplayAlias }); } } } } } else { log.LogInfo("No encontre registros... saliendo metodo consulta"); } return(lista); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al ejecutar el método: QueryDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); throw new Exception("Error al ejecutar el método: QueryDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); } finally { ePower.doLogout(session); } }
public ResultadoAccion actualizaDocumento(string User, string Password, int appId, int doctypeId, int queryId, int DocId, Datos[] data, Contenido[] content, int pos) { ResultadoAccion resultado = new ResultadoAccion(); resultado.Resultado = true; resultado.Mensaje = ""; Interfaces.Collection Documento; int session = 0; Ewsm ePower = null; int RefSize = 0; int lastRef = 0; int idcejilla = 1; try { log = new Bitacorizador(); log.LogInfo("UpdateDocument con los siguientes parámetros:"); log.LogInfo("Con los siguientes Indices: "); log.LogInfo("DocId: " + DocId); log.LogInfo("Con el siguiente Contenido: "); ePower = new Ewsm(); log.LogInfo("Inicia Login hacia ePower"); try { session = ePower.doLogin(User, Password, "eAccess"); } catch (Exception ex) { resultado.Resultado = false; resultado.Mensaje = "Error al autenticarse con ePower: Imposible autenticarse con ePower, verifique sus credenciales y conexión a ePower. " + ex.Message; } log.LogInfo("Se inicia la actualización del documento, Recuperando documento"); Documento = ePower.getFullDocument(session, appId, doctypeId, queryId, DocId); //Actualiza Indices //Rellena los indices del documento for (int i = 0; i < data.Length; i++) { if (Documento.Fields[i].Type == 1) { Documento.Fields[i].ValorString = data[i].ValorString.ToString(); } else if (Documento.Fields[i].Type == 2) { Documento.Fields[i].ValorDec = double.Parse(data[i].ValorString.ToString()); } } ePWS.WS.Type.Tab[] TabName; TabName = ePower.getTabStruct(session, doctypeId, queryId, DocId); /***Referencias a imagenes u otros documentos***/ log.LogInfo("Actualizando Referencias "); RefSize = Documento.References.Length + content.Length; lastRef = Documento.References.Length; Comun.gsiStructRef[] referencias = new Comun.gsiStructRef[RefSize]; for (int i = 0; i < Documento.References.Length; i++) { referencias[i] = Documento.References[i]; } for (int j = 0; j < content.Length; j++) { idcejilla = ePower.getTabId(TabName, content[j].TabName.ToUpper()); gsiFile gsifile1 = new gsiFile(); gsifile1.extension = content[j].ExtensionBinario; log.LogInfo("Se ha capturado el siguiente parametro para gsifile1: extension " + gsifile1.extension.ToString()); gsifile1.Document = System.Convert.FromBase64String(content[j].BinarioBase64); gsifile1.parentId = idcejilla; log.LogInfo("Se ha capturado el siguiente parametro para gsifile1: parentID " + gsifile1.parentId.ToString()); log.LogInfo("Inicia funcion saveRef EWSM"); log.LogInfo("Paramentros de envio para appID " + appId.ToString()); Comun.gsiStructRef rf1 = ePower.saveRef(session, appId, gsifile1); referencias[lastRef] = rf1; referencias[lastRef].DisplayAlias = content[j].NombreBinario; referencias[lastRef].OriginalExtension = content[j].ExtensionBinario; referencias[lastRef].ParentId = idcejilla; lastRef++; } log.LogInfo("Actualizando Documento"); ePower.updateFullDocument(session, appId, doctypeId, queryId, Documento.DocId, Documento.Tabs, Documento.Fields, referencias, null, null); return(resultado); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al ejecutar el método: UpdateDocument, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); resultado.Resultado = false; resultado.Mensaje = "Error al ejecutar el método: UpdateDocument, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace; return(resultado); } finally { ePower.doLogout(session); } }
public List <Resultado> QueryDocumento(string User, string Password, int appId, int doctypeId, int queryId, Datos[] data) { Resultado resultado = new Resultado(); List <Resultado> lista = new List <Resultado>(); log = new Bitacorizador(); int session = 0; string[] fldValue = null; Ewsm ePower = null; Interfaces.Collection Documento; ePower = null; try { log.LogInfo("InsertDocument con los siguientes parámetros:"); log.LogInfo("Con los siguientes Indices: "); ePower = new Ewsm(); log.LogInfo("Inicia Login hacia ePower"); try { session = ePower.doLogin(User, Password, "eAccess"); } catch (Exception ex) { throw new Exception("Error al autenticarse con ePower: Imposible autenticarse con ePower, verifique sus credenciales y conexión a ePower. " + ex.Message); } log.LogInfo("Se busca el documento"); fldValue = new string[data.Length]; for (int i = 0; i < data.Length; i++) { fldValue[i] = data[i].ValorString; } ePWS.WS.Type.QueryInst queryinst = ePower.doExecuteQuery(session, appId, doctypeId, queryId, 500, fldValue, null, null); if (queryinst.DocInst != null) { for (int j = 0; j < queryinst.DocInst.Length; j++) { int DocId = queryinst.DocInst[j].DocId; var resultadoDto = new List <ResultadoDet>(); var resultadoCdo = new List <ResultadoCont>(); lista.Add(new Resultado() { docId = DocId, ItemsDetalle = resultadoDto, ItemsContenido = resultadoCdo }); Documento = ePower.getFullDocument(session, appId, doctypeId, queryId, DocId); for (int k = 0; k < queryinst.DocInst[j].Fields.Length; k++) { string nombreCampo = queryinst.Column[k].Name; string valor = queryinst.DocInst[j].Fields[k].Value.ToString(); resultadoDto.Add(new ResultadoDet { campos = nombreCampo, valores = valor }); } foreach (var item in Documento.References) { if (item.FileName != "") { //string nombreArchivo = item.FileName; string extensionOriginal = item.OriginalExtension; int parentId = item.ParentId; ePWS.WS.Type.Tab[] TabName; TabName = ePower.getTabStruct(session, doctypeId, queryId, DocId); string nombretab = ePower.getTabName(TabName, parentId); if (item.FileName != "") { string quename = item.QueueName; string rutacola = ""; string connectionString = Properties.Settings.Default.ConnectionString; string queryString = "SELECT QUEPATH FROM QUEUE WHERE QUEUENAME = '" + quename + "'"; using (OracleConnection connection = new OracleConnection(connectionString)) { OracleCommand command = new OracleCommand(queryString, connection); connection.Open(); OracleDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { rutacola = reader["QUEPATH"].ToString(); string rutaoriginal = Path.Combine(Path.Combine(Path.Combine(Path.Combine(rutacola, item.FileName.Substring(0, 2)), item.FileName.Substring(2, 2)), item.FileName.Substring(4, 2)), item.FileName.Substring(6, 2) + "." + quename); resultadoCdo.Add(new ResultadoCont { cejilla = nombretab, ruta = rutaoriginal }); } } finally { reader.Close(); } } } } } } } return(lista); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al ejecutar el método: QueryDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); throw new Exception("Error al ejecutar el método: QueryDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); } finally { ePower.doLogout(session); } }
public bool ActualizaDocumento(string User, string Password, int DocId, string No_Caso, string Institucion, string Fecha, string No_Correspondencia, string Remitente, string Destinatario, string tab, string Archivo, string OriginalName, string OriginalExtension, bool Imagen) { Interfaces.Collection Documento; int idcejilla = 1; int session = 0; Ewsm ePower = null; int RefSize = 0; int lastRef = 0; try { log = new Bitacorizador(); log.LogInfo("UpdateDocument con los siguientes parámetros:"); //Cargado de los parametros del config. //string epUser = Properties.Settings.Default.epowerUser; //string epPass = Properties.Settings.Default.epowerPassword; int appId = Properties.Settings.Default.appId; int doctype = Properties.Settings.Default.doctype; int query = Properties.Settings.Default.query; log.LogInfo("Usuario: " + User + "appId: " + appId + " Doctype: " + doctype + " Query: " + query); log.LogInfo("Con los siguientes Indices: "); log.LogInfo("DocId: " + DocId); BitacorizaIndices(log, No_Caso, Institucion, Fecha, No_Correspondencia, Remitente, Destinatario); log.LogInfo("Con el siguiente Contenido: "); log.LogInfo("Nombre Archivo: " + OriginalName); log.LogInfo("Extension: " + OriginalExtension); ePower = new Ewsm(); log.LogInfo("Inicia Login hacia ePower"); try { session = ePower.doLogin(User, Password, "eAccess"); } catch (Exception ex) { throw new Exception("Error al autenticarse con ePower: Imposible autenticarse con ePower, verifique sus credenciales y conexión a ePower. " + ex.Message); } log.LogInfo("Se inicia la actualización del documento, Recuperando documento"); Documento = ePower.getFullDocument(session, appId, doctype, query, DocId); //Actualiza Indices //Rellena los indices del documento Documento.Fields[0].ValorDec = int.Parse(No_Caso); Documento.Fields[1].ValorString = Institucion; Documento.Fields[2].ValorString = Fecha; Documento.Fields[3].ValorString = No_Correspondencia; Documento.Fields[4].ValorString = Remitente; Documento.Fields[5].ValorString = Destinatario; //localizacion de la cejilla if (Imagen) { if (tab == "Correspondencia Recibida") { idcejilla = 4; } else if (tab == "Correspondencia Enviada") { idcejilla = 5; } else { idcejilla = 1;//Cejilla de imagenes } } else { idcejilla = 3;//Cejilla de Otros Documentos } /***Referencias a imagenes u otros documentos***/ log.LogInfo("Actualizando Referencias "); RefSize = Documento.References.Length + 1; lastRef = Documento.References.Length; Comun.gsiStructRef[] referencias = new Comun.gsiStructRef[RefSize]; for (int i = 0; i < Documento.References.Length; i++) { referencias[i] = Documento.References[i]; } gsiFile gsifile = new gsiFile(); gsifile.extension = OriginalExtension; gsifile.Document = System.Convert.FromBase64String(Archivo); Comun.gsiStructRef rf = Bridge.getInstance().saveRef(session, appId, gsifile); referencias[lastRef] = rf; referencias[lastRef].DisplayAlias = OriginalName; referencias[lastRef].OriginalExtension = OriginalExtension; referencias[lastRef].ParentId = idcejilla; log.LogInfo("Actualizando Documento"); ePower.updateFullDocument(session, appId, doctype, query, Documento.DocId, Documento.Tabs, Documento.Fields, referencias, null, null); return(true); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al ejecutar el método: UpdateDocument, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); throw new Exception("Error al ejecutar el método: UpdateDocument, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); } finally { ePower.doLogout(session); } }
public Collection getFullDocument(int sessionId, int appId, int docTypeId, int queryId, int docId) { return(epBridge.getFullDocument(sessionId, appId, docTypeId, queryId, docId)); }