示例#1
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);
        }
示例#2
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);
                 }
             }
         }
     }
 }
示例#3
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);
     }
 }
示例#4
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);
        }