/// <remarks> /// ScheduledAgent constructor, initializes the UnhandledException handler /// </remarks> public ScheduledAgent() { if (!_classInitialized) { _classInitialized = true; // Subscribe to the managed exception handler Deployment.Current.Dispatcher.BeginInvoke(delegate { Application.Current.UnhandledException += ScheduledAgent_UnhandledException; }); } // Initialize the database utilities and storage settings. LocalDatabaseDataContext db = new LocalDatabaseDataContext(DBLocation); DataBaseTools = new DataUtils(DBLocation); AgentSettings = new Settings(); }
/// <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(); // Enable 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 = false; // 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 (or, if debugging, rebuild solution) //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); }
// note: could also have used a lock rather than a mutex. // A lock protects against cross-thread access to the data context. // The mutex additionally protects against cross-process access. //Contructor to initialize the database public DataUtils(string dbConnectionString) { db = new LocalDatabaseDataContext(dbConnectionString); }
//Contructor to initialize the database public DataUtils(string dbConnectionString) { db = new LocalDatabaseDataContext(dbConnectionString); }