Esempio n. 1
0
 public static UpdateInfo GetUpdateInfo()
 {
     try{
         var updateInfo=new UpdateInfo();
         var webClient=new WebClient();
         string textData=null;
         foreach(var url in updateInfoUrls){
             try{
                 textData=Encoding.UTF8.GetString(webClient.DownloadData(url));
                 break;
             }catch(Exception){
                 continue;
             }
         }
         if(textData==null) return null;
         var textInfo=textData.Split(new[]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)
             .Select(l=>l.Split(new[]{','},StringSplitOptions.RemoveEmptyEntries));
         foreach(var info in textInfo){
             switch(info[0]){
             case "database":
                 updateInfo.LatestDatabasePublishedDate=DateTime.Parse(info[1]);
                 updateInfo.LatestDatabaseUrl=info[2];
                 break;
             case "app":
                 updateInfo.LatestAppVersion=Version.Parse(info[1]);
                 updateInfo.LatestAppUrl=info[2];
                 break;
             }
         }
         return updateInfo;
     }catch(Exception){
         return null;
     }
 }
 private void CheckUpdate(UpdateInfo updateInfo)
 {
     if(updateInfo==null) return;
     else Settings.Default.LastUpdateCheckDate=DateTime.Today;
     var updateDatabase=updateInfo.LatestDatabasePublishedDate>publishedDate;
     var updateApp=UpdateChecker.IsNewerThanCurrentVersion(updateInfo.LatestAppVersion);
     if(updateDatabase&&updateApp){
         var result=MessageBox.Show("新しいデータベースとアプリが利用可能です。\n\nダウンロードしますか?","ベンツ君語録検索",MessageBoxButton.YesNo,MessageBoxImage.Information);
         if(result==MessageBoxResult.Yes){
             Process.Start(updateInfo.LatestDatabaseUrl);
             Process.Start(updateInfo.LatestAppUrl);
             App.Current.Dispatcher.Invoke((Action)App.Current.Shutdown,null);
         }
     }else if(updateDatabase){
         var result=MessageBox.Show("新しいデータベースが利用可能です。\n\nダウンロードしますか?","ベンツ君語録検索",MessageBoxButton.YesNo,MessageBoxImage.Information);
         if(result==MessageBoxResult.Yes){
             Process.Start(updateInfo.LatestDatabaseUrl);
             App.Current.Dispatcher.Invoke((Action)App.Current.Shutdown,null);
         }
     }else if(updateApp){
         var result=MessageBox.Show("新しいアプリが利用可能です。\n\nダウンロードしますか?","ベンツ君語録検索",MessageBoxButton.YesNo,MessageBoxImage.Information);
         if(result==MessageBoxResult.Yes){
             Process.Start(updateInfo.LatestAppUrl);
             App.Current.Dispatcher.Invoke((Action)App.Current.Shutdown,null);
         }
     }
     updating=false;
     App.Current.Dispatcher.Invoke((Action)System.Windows.Input.CommandManager.InvalidateRequerySuggested,null);
 }