// Add a measurement to the database and collections. public void AddMeasurement(Measurement newMeasurement) { // Add a measurement to the data context. measurementDB.Measurements.InsertOnSubmit(newMeasurement); // Save changes to the database. measurementDB.SubmitChanges(); // Add a measurement to the "all" observable collection. AllMeasurements.Add(newMeasurement); // Add a measurement to the appropriate filtered collection. switch (newMeasurement.Type.Name) { case "Weight": WeightMeasurements.Add(newMeasurement); break; case "Pulse": PulseMeasurements.Add(newMeasurement); break; case "Pressure": PressureMeasurements.Add(newMeasurement); break; default: break; } // Save changes to the database. measurementDB.SubmitChanges(); }
// Remove a measurement from the database and collections. public void DeleteMeasurement(Measurement measurementForDelete) { // Remove the measurement from the "all" observable collection. AllMeasurements.Remove(measurementForDelete); // Remove the measurement from the data context. measurementDB.Measurements.DeleteOnSubmit(measurementForDelete); // Remove the measurement from the appropriate category. switch (measurementForDelete.Type.Name) { case "Weight": WeightMeasurements.Remove(measurementForDelete); break; case "Pulse": PulseMeasurements.Remove(measurementForDelete); break; case "Pressure": PressureMeasurements.Remove(measurementForDelete); break; default: break; } // Save changes to the database. measurementDB.SubmitChanges(); }
/// <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(); // 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; } // Specify the local database connection string. string DBConnectionString = "Data Source=isostore:/Measurements.sdf"; // Create the database if it does not exist. using (MeasurementDataContext db = new MeasurementDataContext(DBConnectionString)) { if (db.DatabaseExists() == false) { // Create the local database. db.CreateDatabase(); // Prepopulate the categories. db.MeasurementTypes.InsertOnSubmit(new MeasurementType { Name = "Weight" }); db.MeasurementTypes.InsertOnSubmit(new MeasurementType { Name = "Pulse" }); db.MeasurementTypes.InsertOnSubmit(new MeasurementType { Name = "Pressure" }); // Save categories to the database. db.SubmitChanges(); } } // Create the ViewModel object. _mainPageViewModel = new MainPageViewModel(DBConnectionString); _newMeasurementPageViewModel = new NewMeasurementPageViewModel(DBConnectionString); // Query the local database and load observable collections. _mainPageViewModel.LoadCollectionsFromDatabase(); _newMeasurementPageViewModel.LoadCollectionsFromDatabase(); }