UpdateControl.cs
Description du code
UpdateControl.cs est un fichier du projet BrolDev.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.
Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.
Code source ou contenu du fichier
Code c# (UpdateControl.cs) (198 lignes)
using System; using System.ComponentModel; using System.Deployment.Application; using System.Windows.Forms; using be.gaudry.view.dialogs; namespace be.gaudry.view.controls { public partial class UpdateControl : UserControl { long sizeOfUpdate = 0; public UpdateControl() { InitializeComponent(); } private void updateBtn_Click(object sender, EventArgs e) { UpdateApplication(); } private void UpdateApplication() { if (ApplicationDeployment.IsNetworkDeployed) { updatePGB.Value = 0; updatePGB.Visible = true; ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; ad.CheckForUpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_CheckForUpdateProgressChanged); ad.CheckForUpdateAsync(); } else { MessageBox.Show("Cette version de Bibliobrol n'est pas une version déployée,\nou n'est pas démarrée depuis le menu \"Démarrer\" de Windows.", "Mise à jour", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } #region check for update void ad_CheckForUpdateProgressChanged(object sender, DeploymentProgressChangedEventArgs e) { updatePGB.Value = e.ProgressPercentage; updateLbl.Text = String.Format( "Téléchargement : {0}. {1:D}K de {2:D}K téléchargés.", GetProgressString(e.State), e.BytesCompleted / 1024, e.BytesTotal / 1024 ); } string GetProgressString(DeploymentProgressState state) { if (state == DeploymentProgressState.DownloadingApplicationFiles) { return "fichier application"; } else if (state == DeploymentProgressState.DownloadingApplicationInformation) { return "manifeste de l'application"; } else { return "manifeste de deploiement"; } } void ad_CheckForUpdateCompleted(object sender, CheckForUpdateCompletedEventArgs e) { if (e.Error != null) { ExceptionDialog.ShowDialog( "Erreur de mise à jour", "Impossible d'effectuer la mise à jour. Motif : \n" + e.Error.Message, e.Error, this.ParentForm ); return; } else if (e.Cancelled == true) { MessageBox.Show("La mise à jour est abandonnée.", "Mise à jour", MessageBoxButtons.OK, MessageBoxIcon.Information); } // Ask the user if they would like to update the application now. if (e.UpdateAvailable) { sizeOfUpdate = e.UpdateSizeBytes; if (!e.IsUpdateRequired) { DialogResult dr = MessageBox.Show( String.Format("Une nouvelle version est disponible.\n\nMettre à jour maintenant ?\n\nTaille du téléchargement : {0} octets", e.UpdateSizeBytes), "Mise à jour", MessageBoxButtons.OKCancel, MessageBoxIcon.Question ); if (DialogResult.OK == dr) { BeginUpdate(); } } else { MessageBox.Show( "Une mise à jour critique est disponible pour BiblioBrol. La mise à jour va s'installer maintenant, un redémarrage de l'application sera nécessaire.", "Mise à jour", MessageBoxButtons.OK, MessageBoxIcon.Information); BeginUpdate(); } } else { MessageBox.Show("Aucune mise à jour disponible.", "Mise à jour", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #endregion #region update private void BeginUpdate() { ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment; //ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted); //ad.UpdateProgressChanged += new DeploymentProgressChangedEventHandler(ad_UpdateProgressChanged); try { ad.UpdateAsync(); } catch (DeploymentDownloadException dde) { ExceptionDialog.ShowDialog( "Erreur de mise à jour", "L'application ne peut être mise à jour maintenant.\n\nVeuillez vérifier votre connexion réseau ou réessayer plus tard.\n\nErreur : " + dde.Message, dde, this.ParentForm ); } } void ad_UpdateProgressChanged(object sender, DeploymentProgressChangedEventArgs e) { updatePGB.Value = e.ProgressPercentage; String progressText = String.Format( "{0:D}K téléchargés sur {1:D}K - {2:D}% du total", e.BytesCompleted / 1024, e.BytesTotal / 1024, e.ProgressPercentage ); updateLbl.Text = progressText; } void ad_UpdateCompleted(object sender, AsyncCompletedEventArgs e) { if (e.Cancelled) { MessageBox.Show("La mise à jour est abandonnée.", "Mise à jour", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } else if (e.Error != null) { ExceptionDialog.ShowDialog( "Erreur de mise à jour", "L'application ne peut être mise à jour maintenant.\n\nVeuillez vérifier votre connexion réseau ou réessayer plus tard.\n\nErreur : " + e.Error.Message, e.Error, this.ParentForm ); return; } DialogResult dr = MessageBox.Show( "L'application est mise à jour et un redémarrage est vivement conseillé. Souhaitez-vous redémarrer ?\n\nSi vous ne redémarrez pas maintenant, la nouvelle version ne pourra prendre effet qu'au prochain démarrage de l'application.", "Redémarrage de l'application", MessageBoxButtons.OKCancel ); if (DialogResult.OK == dr) { Application.Restart(); } } #endregion } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Pas de sous-répertoires. | |||
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1732518498 25/11/2024 08:08:18 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
25/11/2024 08:08:17 Cette version de la page est en cache (à la date du 25/11/2024 08:08:17) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-view/controls//UpdateControl.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.