/// <summary> /// Asynchronously retrieves settings from persistent storage and updates /// the view. The loading spinner is active while this is working. /// </summary> private async void InitSettings() { Items = new ObservableCollection <Contact>(); Message = new Text { TextMsg = "" }; MessageText = ""; SendGPSCoords = false; //get items from memory if they exist ObservableCollection <Contact> newItems; Text newText; try { newItems = await GetContactsAsync(); foreach (Contact c in newItems) { Items.Add(c); } } catch (System.Collections.Generic.KeyNotFoundException) { await contactDataStore.ReplaceAsync(Items); } try { newText = await textDataStore.GetAsync("SOS_text"); Message.TextMsg = newText.TextMsg; MessageText = newText.TextMsg; } catch (System.Collections.Generic.KeyNotFoundException) { await textDataStore.AddAsync(Message); } try { SendGPSCoords = await sendGPSStore.GetAsync("Send_GPS"); } catch (KeyNotFoundException) { await sendGPSStore.AddAsync(SendGPSCoords); } //LoadingSettings = false; OnPropertyChanged("Items"); OnPropertyChanged("Message"); OnPropertyChanged("MessageText"); OnPropertyChanged("SendGPSCoords"); System.Diagnostics.Debug.WriteLine("3"); }
public ItemsViewModel() { Title = "Browse"; Items = new ObservableCollection <Item>(); LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); MessagingCenter.Subscribe <NewItemPage, Item>(this, "AddItem", async(obj, item) => { var newItem = item as Item; Items.Add(newItem); await DataStore.AddAsync(newItem); }); }
public async Task <(bool succeeded, User user)> LoginUser() { var user = await GetUserFromLocalDb(); if (user is null) { return(false, null); } var userInServer = await _userDataStore.GetAsync(user.Id.ToString()); if (userInServer is null) { await _userDataStore.AddAsync(user); } else if (user.Name != userInServer.Name || user.Id != userInServer.Id) { return(false, null); } return(true, user); }
public void SubscribeToMessages() { MessagingCenter.Subscribe <NewEntryPage, Entry>(this, "AddEntry", async(obj, entry) => { var _entry = entry as Entry; Entries.Add(_entry); try { await EntryDataStore.AddAsync(_entry); LoadEntriesCommand.Execute(null); } catch (Exception e) { Console.WriteLine("AddEntry" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); MessagingCenter.Subscribe <EditEntryPage, Entry>(this, "EditEntry", async(obj, entry) => { var _entry = entry as Entry; try { await EntryDataStore.UpdateAsync(_entry); LoadEntriesCommand.Execute(null); } catch (Exception e) { Console.WriteLine("EditEntry" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); MessagingCenter.Subscribe <JournalEntriesPage, Entry>(this, "HideEntry", async(obj, entry) => { var _entry = entry as Entry; try { Entries.Remove(_entry); await EntryDataStore.HideAsync(_entry.Id); LoadEntriesCommand.Execute(null); } catch (Exception e) { Console.WriteLine("HideEntry" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); MessagingCenter.Subscribe <JournalEntriesPage, Entry>(this, "UnhideEntry", async(obj, entry) => { var _entry = entry as Entry; try { Entries.Remove(_entry); await EntryDataStore.UnhideAsync(_entry.Id); LoadEntriesCommand.Execute(null); } catch (Exception e) { Console.WriteLine("UnhideEntry" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); MessagingCenter.Subscribe <JournalEntriesPage, Entry>(this, "DeleteEntry", async(obj, entry) => { var _entry = entry as Entry; try { Entries.Remove(_entry); await EntryDataStore.DeleteAsync(_entry.Id); LoadEntriesCommand.Execute(null); } catch (Exception e) { Console.WriteLine("DeleteEntry" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); MessagingCenter.Subscribe <SearchPopupPage, string[]>(this, "DateSearch", async(obj, dates) => { var _dates = dates as string[]; try { await ExecuteLoadEntriesCommand(null, dates); } catch (Exception e) { Console.WriteLine("DateSearch" + e); if (!e.Message.Contains("A task was canceled")) { await App.Current.MainPage.DisplayAlert("Error", e.Message, "OK"); } } }); }
/// <summary> /// Adds the student. /// </summary> /// <returns>The student.</returns> /// <param name="student">Student.</param> public async Task <bool> AddStudentAsync(StudentModel student) { ValidateStudentModel(student); return(await _dataStore.AddAsync(student)); }