Exemple #1
0
        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);
            }
        }