Exemplo n.º 1
0
        private async Task ExecuteLoadContactsCommand(bool forceReload = false)
        {
            IsBusy = true;
            try
            {
                var contacts = await ContactsDataStore.GetContactsFromSourceAsync(forceReload);

                Contacts.Clear();
                foreach (var contact in contacts)
                {
                    Contacts.Add(new ContactViewModel(contact));
                }
            }
            catch (Exception ex)
            {
#if DEBUG
                Debug.WriteLine(ex);
#endif
                await Shell.Current.DisplayAlert($"Ошибка", "Произошла ошибка при загрузке контактов. Будут показаны контакты из локальной БД.", "OK");

                // если это первая загрузка и список пустой, загрузим из кэша
                if (Contacts.Count == 0)
                {
                    await LoadContactsFromCache();
                }
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemplo n.º 2
0
        private async Task LoadContactsFromCache()
        {
            IsBusy = true;
            try
            {
                var contacts = await ContactsDataStore.GetContactsFromCacheAsync();

                foreach (var contact in contacts)
                {
                    Contacts.Add(new ContactViewModel(contact));
                }
            }
            catch (Exception ex)
            {
#if DEBUG
                Debug.WriteLine(ex);
#endif
                await Shell.Current.DisplayAlert($"Ошибка", "Произошла ошибка при загрузке контактов из локальной БД.", "OK");
            }
            finally
            {
                IsBusy = false;
            }
        }