public ResultadoAccion guardarDocumento(string User, string Password, int appId, int doctypeId, int queryId, Datos[] data, Datos[] dataset, Contenido[] contenido, int pos) { ResultadoAccion resultado = new ResultadoAccion(); resultado.Resultado = true; resultado.Mensaje = ""; 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) { log.LogError("Error al autenticarse con ePower: Imposible autenticarse con ePower, verifique sus credenciales y conexión a ePower. " + ex.Message); 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 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) { // update for (int j = 0; j < queryinst.DocInst.Length; j++) { int DocId = queryinst.DocInst[j].DocId; resultado = actualizaDocumento(User, Password, appId, doctypeId, queryId, DocId, dataset, contenido, pos); } } else // insert { resultado = insertaDocumento(User, Password, appId, doctypeId, queryId, dataset, contenido); } return(resultado); } catch (Exception ex) { log = new Bitacorizador(); log.LogError("Error al ejecutar el método: GuardarDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace); resultado.Resultado = false; resultado.Mensaje = "Error al ejecutar el método: GuardarDocumento, Detalles " + "Mensaje: " + ex.Message + " StackTrace: " + ex.StackTrace; return(resultado); } finally { ePower.doLogout(session); } }
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 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); } }