Ejemplo n.º 1
0
        /// <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");
        }
Ejemplo n.º 2
0
        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);
            });
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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");
                    }
                }
            });
        }
Ejemplo n.º 5
0
 /// <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));
 }