//Used when the database is modified. public void SaveChangesToDB() { try { dbMutex.WaitOne(); db.SubmitChanges(); dbMutex.ReleaseMutex(); } catch (ChangeConflictException e) { System.Diagnostics.Debug.WriteLine("ERROR!!!: " + e); return; } catch (Exception e) { System.Diagnostics.Debug.WriteLine("ERROR!!!: " + e); } }
/// <summary> /// Constructor for the Application object. /// </summary> public App() { // Global handler for uncaught exceptions. UnhandledException += Application_UnhandledException; // Standard Silverlight initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication(); // URI Mapper RootFrame.UriMapper = Resources["UriMapper"] as UriMapper; // Show graphics profiling information while debugging. if (System.Diagnostics.Debugger.IsAttached) { // Display the current frame rate counters. Application.Current.Host.Settings.EnableFrameRateCounter = true; // Show the areas of the app that are being redrawn in each frame. //Application.Current.Host.Settings.EnableRedrawRegions = true; // Enable non-production analysis visualization mode, // which shows areas of a page that are handed off to GPU with a colored overlay. //Application.Current.Host.Settings.EnableCacheVisualization = true; // Disable the application idle detection by setting the UserIdleDetectionMode property of the // application's PhoneApplicationService object to Disabled. // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run // and consume battery power when the user is not using the phone. PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; } // Initialize application wide settings and DataBase utilities. using (LocalDatabaseDataContext db = new LocalDatabaseDataContext(DBLocation)) { //Inorder to clean the db uncomment the next line //db.DeleteDatabase(); if (!db.DatabaseExists()) { db.CreateDatabase(); } db.SubmitChanges(); } // Needs to be called AFTER DatabaseContext is Disposed above. DataBaseUtility = new DataUtils(DBLocation); Favorites = new Category { CategoryTitle = "Favorites" }; App.DataBaseUtility.AddCategory(Favorites); App.DataBaseUtility.SaveChangesToDB(); ApplicationSettings = new Settings(); // WebTools object used for initial download and refreshing. SynFeedDownloader = new WebTools(new SynFeedParser()); // ArticleSource array used to keep track of article page source. ArticleSource = new string[2]; // Create the background agent if it does not already exist on the scheduler. BackgroundAgentTools BGTools = new BackgroundAgentTools(); BGTools.StartPeriodicAgent(); // Redirect initial navigation. RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating); }