Пример #1
0
 internal protected static string SetupDocument(String repositoryName, String contentId)
 {
     if (!String.IsNullOrEmpty(contentId) && OfficeApplication.TryLogOn())
     {
         IOfficeDocument document = OfficeApplication.OfficeDocumentProxy;
         try
         {
             if (document.exists(repositoryName, contentId))
             {
                 return(contentId);
             }
             else
             {
                 RtlAwareMessageBox.Show("El contenido parace haberse publicado en un sitio web.\r\nAl sitio donde se está intentando conectar, indica que este contenido no existe.\r\nSi desea continuar se perderá esta información, de lo contrario, cierre este documento.", "Verificación de contenido en sitio web", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             }
         }
         catch (FormatException fe)
         {
             OfficeApplication.WriteError(fe);
         }
         catch (ApplicationException ap)
         {
             OfficeApplication.WriteError(ap);
         }
     }
     return(null);
 }
Пример #2
0
        /// <summary>
        /// Verify if the content is published or not, and if it exists or not.
        /// </summary>
        protected bool SetupDocument()
        {
            bool setupDocument = false;

            if (this.CustomProperties.ContainsKey(CONTENT_ID_NAME) && this.CustomProperties.ContainsKey(REPOSITORY_ID_NAME))
            {
                contentID    = this.CustomProperties[CONTENT_ID_NAME];
                reporitoryID = this.CustomProperties[REPOSITORY_ID_NAME];
            }
            try
            {
                contentID     = OfficeApplication.SetupDocument(reporitoryID, contentID);
                setupDocument = true;
            }
            catch (HttpException e)
            {
                if (e.Code == HttpStatusCode.NotFound)
                {
                    RtlAwareMessageBox.Show(null, "El sitio al que desea conectarse, indica que no tiene habilitada la función de publicación de contenidos", "Verificación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (e.Code == HttpStatusCode.Forbidden)
                {
                    RtlAwareMessageBox.Show(null, "Su clave o contraseña es incorrecta", "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    RtlAwareMessageBox.Show(null, e.Message, "Verificación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                }
                OfficeApplication.LogOff();
            }
            catch (WebException e)
            {
                if (e.Status == WebExceptionStatus.ConnectFailure)
                {
                    RtlAwareMessageBox.Show(null, "El sitio web con el que intenta trabajar, se encuentra apagado o no se puede acceder al mismo.", "Verificación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    RtlAwareMessageBox.Show(null, e.Message, "Verificación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                OfficeApplication.LogOff();
            }
            catch (Exception e)
            {
                OfficeApplication.WriteError(e);
                RtlAwareMessageBox.Show(null, e.Message, "Verificación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                OfficeApplication.LogOff();
            }
            return(setupDocument);
        }
Пример #3
0
 public void Delete()
 {
     if (IsPublished)
     {
         if (OfficeApplication.TryLogOn() && SetupDocument())
         {
             bool canModify = OfficeDocument.OfficeDocumentProxy.canModify(reporitoryID, contentID);
             if (!canModify)
             {
                 MessageBox.Show("¡No tiene permisos para modificar o borrar este contenido, debe ser el propietario o un super usuario quien lo puede realizar!", "Borrar contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             DialogResult result = RtlAwareMessageBox.Show("¿Desea borrar el contenido del sitio web?", "Borrar contenido", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (result == DialogResult.Yes)
             {
                 try
                 {
                     OfficeDocumentProxy.delete(this.reporitoryID, this.contentID);
                     this.CleanContentProperties();
                     MessageBox.Show("¡Se ha borrado el contenido!", "Borrado de contenido", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     if (OfficeApplication.MenuListener != null)
                     {
                         OfficeApplication.MenuListener.NoDocumentPublished();
                     }
                 }
                 catch (HttpException e)
                 {
                     RtlAwareMessageBox.Show(e.Message, "Borrar contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     OfficeApplication.WriteError(e);
                 }
                 catch (XmlRpcException e)
                 {
                     RtlAwareMessageBox.Show(e.Message, "Borrar contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     OfficeApplication.WriteError(e);
                 }
                 catch (WebException e)
                 {
                     RtlAwareMessageBox.Show(e.Message, "Borrar contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     OfficeApplication.WriteError(e);
                 }
             }
         }
     }
 }
Пример #4
0
 public void SaveToSite()
 {
     try
     {
         if (IsReadOnly)
         {
             RtlAwareMessageBox.Show("El documento es de sólo lectura, por lo tanto no puede ser publicado", "Publicación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Error);
             return;
         }
         if (OfficeApplication.TryLogOn() && SetupDocument())
         {
             if (!ValidaNombre(this.FilePath))
             {
                 return;
             }
             if (!ValidaFiles())
             {
                 return;
             }
             if (isOldVersion())
             {
                 DialogResult res = RtlAwareMessageBox.Show("El documento esta publicado en una versión anterior, ¿Desea que se verifique si existe en el sitio actual?", "Publicación de contenido", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                 if (res == DialogResult.Yes)
                 {
                     String      contentid = this.CustomProperties["content"];
                     String      topicid   = this.CustomProperties["topicid"];
                     String      topicmap  = this.CustomProperties["topicmap"];
                     ContentInfo info      = OfficeApplication.OfficeDocumentProxy.existContentOldVersion(contentid, topicmap, topicid);
                     if (info != null)
                     {
                         res = RtlAwareMessageBox.Show("El documento se encuentra en el sitio, ¿Desea convertir el documento a versión 4?", "Publicación de contenido", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                         if (res == DialogResult.Yes)
                         {
                             CleanContentProperties();
                             SaveContentProperties(info.id, info.respositoryName);
                             this.Save();
                             RtlAwareMessageBox.Show("¡El documento se ha convertido a versión 4, puede continuar!", "Publicación de contenido", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         }
                         if (res == DialogResult.Cancel)
                         {
                             return;
                         }
                     }
                     else
                     {
                         res = RtlAwareMessageBox.Show("El documento no existe en el sitio actual, por lo cuál no se puede convertir, ¿Desea continuar?", "Publicación de contenido", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                         if (res == DialogResult.No)
                         {
                             return;
                         }
                     }
                 }
                 if (res == DialogResult.Cancel)
                 {
                     return;
                 }
             }
             if (IsNew)
             {
                 SaveFileDialog dialog = new SaveFileDialog();
                 dialog.Title           = "Guardar Documento";
                 dialog.CreatePrompt    = true;
                 dialog.CheckFileExists = false;
                 dialog.CheckPathExists = true;
                 dialog.OverwritePrompt = true;
                 dialog.AddExtension    = true;
                 dialog.DefaultExt      = DefaultExtension;
                 dialog.Filter          = DocumentFilter;
                 DialogResult result = dialog.ShowDialog();
                 if (result != DialogResult.OK)
                 {
                     return;
                 }
                 FileInfo file = new FileInfo(dialog.FileName);
                 if (file.Exists)
                 {
                     file.Delete();
                 }
                 Save(file);
                 new FormSaveContent(this).ShowDialog();
             }
             else if (!IsNew && this.IsPublished && OfficeApplication.OfficeDocumentProxy.exists(this.reporitoryID, this.contentID))
             {
                 // update the content
                 Save();
                 UpdateContent();
             }
             else
             {
                 Save();
                 new FormSaveContent(this).ShowDialog();
             }
         }
     }
     catch (Exception e)
     {
         OfficeApplication.WriteError(e);
     }
 }
Пример #5
0
        internal static bool TryLogOn()
        {
            bool tryLogOn = false;

            if (userInfo == null || webAddress == null)
            {
                LogOn();
                if (userInfo == null || webAddress == null)
                {
                    LogOff();
                    tryLogOn = false;
                }
                else
                {
                    MenuListener.LogOn();
                    tryLogOn = true;
                }
            }
            else
            {
                tryLogOn = true;
            }
            if (tryLogOn)
            {
                try
                {
                    OfficeApplicationProxy.isValidVersion(m_version);
                    if (MenuListener != null)
                    {
                        MenuListener.LogOn();
                    }
                    URIConfigurationList uRIConfigurationList = new URIConfigurationList();
                    String uri = OfficeApplicationProxy.WebAddress.ToString();
                    if (uri.EndsWith("gtw"))
                    {
                        uri = uri.Substring(0, uri.Length - 3);
                    }
                    uRIConfigurationList.Add(OfficeApplicationProxy.Credentials.UserName, new Uri(uri));
                    MenuListener.LogOn();
                }
                catch (HttpException e)
                {
                    MenuListener.LogOff();
                    tryLogOn = false;
                    if (e.Code == HttpStatusCode.NotFound)
                    {
                        RtlAwareMessageBox.Show(null, "No se puede conectar a la dirección web, o la dirección es incorrecta o no se tiene habilitada la publicación de contenidos", "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (e.Code == HttpStatusCode.Forbidden)
                    {
                        RtlAwareMessageBox.Show(null, "Su clave o contraseña es incorrecta", "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        RtlAwareMessageBox.Show(null, e.Message, "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                    }
                    OfficeApplication.LogOff();
                }
                catch (WebException e)
                {
                    MenuListener.LogOff();
                    tryLogOn = false;
                    if (e.Status == WebExceptionStatus.ConnectFailure)
                    {
                        RtlAwareMessageBox.Show(null, "El sitio web con el que intenta trabajar, se encuentra apagado o no se puede acceder al mismo.", "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        RtlAwareMessageBox.Show(null, e.Message, "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    OfficeApplication.LogOff();
                }
                catch (Exception e)
                {
                    OfficeApplication.WriteError(e);
                    MenuListener.LogOff();
                    RtlAwareMessageBox.Show(null, e.Message, "Iniciar sessión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tryLogOn = false;
                    OfficeApplication.LogOff();
                }
            }
            return(tryLogOn);
        }