コード例 #1
0
ファイル: ViewLog.xaml.cs プロジェクト: kapitanov/diploma
 internal void LoadData()
 {
     this.Asynch(() =>
     {
         try
         {
             using (var db = new LogsConnection())
             {
                 db.Logs.MergeOption = MergeOption.NoTracking;
                 logItems = db.Logs.Include("Categories").Include("Categories").OrderByDescending(item => item.Timestamp).ToList();
                 foreach (var item in logItems)
                 {
                     foreach (var category in item.Categories)
                     {
                         category.CategoryReference.Load();
                     }
                 }
             }
         }
         catch (Exception err)
         {
             MessageBox.Show(err.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }, ()=>
     {
         ViewHost.SetStatus("Fetching data...");
         ViewHost.ShowProgressBar();
     }, ViewHost.HideProgressBar, () =>
     {
         grid.ItemsSource = logItems;
         ViewHost.SetStatus(string.Format("{0} items fetched", logItems.Count));
     });
 }
コード例 #2
0
ファイル: MainView.xaml.cs プロジェクト: kapitanov/diploma
        private void ClearLogs_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            if(MessageBox.Show("Clear all logs?", "Confirm", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                using(var db = new LogsConnection())
                {
                    db.ClearLogs();
                    db.SaveChanges();
                }

                LoadData.Execute(null, this);
            }
        }