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)); }); }
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); } }