internal static UserDataContext Load(IStorageModel storage) { UserDataContext result = null; try { result = storage.LoadFromStorageAsync<UserDataContext>(ConnectionString).Result; } catch (Exception ex) { var settings = SettingsModelFactory.GetSettingsModel(); settings.AddOrUpdate("currentUser", string.Empty); settings.SaveSettings(); result = new UserDataContext(); } result.UserFavorites.CollectionChanged += UserFavorites_CollectionChanged; return result; }
/// <summary> /// Constructor for the Application object. /// </summary> public App() { // Global handler for uncaught exceptions. UnhandledException += Application_UnhandledException; // Standard XAML initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication(); // Language display initialization InitializeLanguage(); // Show graphics profiling information while debugging. if (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; // Prevent the screen from turning off while under the debugger by disabling // the application's idle detection. // 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; } // Intialize main data model. Main = new MainDataModel(); // Initialize database UserContext = new UserDataContext(userDBConnectionString); UserContext.CreateIfNotExists(); // Register for Device Network status changes DeviceNetworkInformation.NetworkAvailabilityChanged += DeviceNetworkInformation_NetworkAvailabilityChanged; // Register for notifications NotificationService.Default.Register<AccessTokenMessage>(OnAccessTokenMessage); NotificationService.Default.Register<NetworkDetectionMessage>(OnNetworkDetectionMessage); NotificationService.Default.Register<ToastMessage>(OnToastMessage); NotificationService.Default.Register<DialogMessage>(OnDialogMessage); NotificationService.Default.Register<ConfirmDialogMessage>(OnConfirmDialogMessage); NotificationService.Default.Register<PinnedForumQuery>(OnPinnedForumQuery); }
/// <summary> /// Creates a new SignInDataModel instance. /// </summary> /// <param name="success">callback on sign in success.</param> /// <param name="fail">callback on sign in failure.</param> public SignInDataModel( UserDataContext context, SignInSuccessDelegate success, FailureDelegate fail) { if (success == null || fail == null) throw new ArgumentNullException("success | fail"); this.userContext = context; this.onSuccess = success; this.onFail = fail; this.signInCommand = new RelayCommand(async () => { await SignInAsync(); }, CanSignIn); }