public SearchListXaml () { InitializeComponent (); var task = Task.Run(async () => { favoritesRepository = await XmlFavoritesRepository.OpenFile ("XamarinFavorites.xml"); }); task.Wait(); search = new Search ("test"); viewModel = new SearchViewModel (App.Service, search); viewModel.SearchCompleted += (sender, e) => { if (viewModel.Groups == null) { listView.ItemsSource = new string [1]; } else { listView.ItemsSource = viewModel.Groups; } }; viewModel.Error += (sender, e) => { DisplayAlert ("Error", e.Exception.Message, "OK", null); }; BindingContext = viewModel; }
public override bool FinishedLaunching (UIApplication app, NSDictionary options) { if(!UIDevice.CurrentDevice.CheckSystemVersion(7,0)) Theme.Apply (); // // Create the service // // Local CSV file service = MemoryDirectoryService.FromCsv ("Data/XamarinDirectory.csv"); // LDAP service - uncomment to try it out. //service = new LdapDirectoryService { // Host = "ldap.mit.edu", // SearchBase = "dc=mit,dc=edu", //}; // // Load the favorites // var favoritesRepository = XmlFavoritesRepository.OpenIsolatedStorage ("Favorites.xml"); if (favoritesRepository.GetAll ().Count () == 0) { favoritesRepository = XmlFavoritesRepository.OpenFile ("Data/XamarinFavorites.xml"); favoritesRepository.IsolatedStorageName = "Favorites.xml"; } // // Load the last search // Search search = null; try { search = Search.Open ("Search.xml"); } catch (Exception) { search = new Search ("Search.xml"); } // // Build the UI // favoritesViewController = new FavoritesViewController (favoritesRepository, service, search); window = new UIWindow (UIScreen.MainScreen.Bounds); window.RootViewController = new UINavigationController (favoritesViewController); window.MakeKeyAndVisible (); // // Show the login screen at startup // var login = new LoginViewController (service); favoritesViewController.PresentViewController (login, false, null); return true; }
public SearchViewModel (IDirectoryService service, Search search) { if (service == null) throw new ArgumentNullException ("service"); this.service = service; if (search == null) throw new ArgumentNullException ("search"); this.search = search; SetGroupedPeople (); }
private void InitializeViewModel () { var task = Task.Run(async () => { favoritesRepository = await XmlFavoritesRepository.OpenFile ("XamarinFavorites.xml"); }); task.Wait(); search = new Search (string.Empty); viewModel = new SearchViewModel (App.Service, search); viewModel.SearchCompleted += OnSearchCompleted; viewModel.Error += (sender, e) => { DisplayAlert ("Help", e.Exception.Message, "OK", null); }; BindingContext = viewModel; }
public FavoritesViewController(IFavoritesRepository favoritesRepository, IDirectoryService service, Search savedSearch) { this.favoritesRepository = favoritesRepository; Title = "Favorites"; viewModel = new FavoritesViewModel (favoritesRepository, groupByLastName: true); viewModel.PropertyChanged += HandleViewModelPropertyChanged; searchViewModel = new SearchViewModel (service, savedSearch); // // Configure this view // var favoritesDelegate = new PeopleGroupsDelegate (TableView); favoritesDelegate.PersonSelected += HandlePersonSelected; TableView.DataSource = new PeopleGroupsDataSource (viewModel.Groups); TableView.Delegate = favoritesDelegate; TableView.SectionIndexMinimumDisplayRowCount = 10; // // Configure the search bar // searchBar = new UISearchBar (new CGRect (0f, 0f, 320f, 44f)) { ShowsScopeBar = true, }; searchBar.ScopeButtonTitles = new[] { "Name", "Title", "Dept", "All" }; searchBar.SelectedScopeButtonIndex = (int)savedSearch.Property; searchController = new UISearchDisplayController (searchBar, this) { SearchResultsDataSource = new PeopleGroupsDataSource (searchViewModel.Groups), Delegate = new SearchDisplayDelegate (searchViewModel) }; var searchDelegate = new PeopleGroupsDelegate (searchController.SearchResultsTableView); searchController.SearchResultsTableView.SectionIndexMinimumDisplayRowCount = 10; searchDelegate.PersonSelected += HandleSearchPersonSelected; searchController.SearchResultsDelegate = searchDelegate; TableView.TableHeaderView = searchBar; }
public SearchListXaml () { InitializeComponent (); favoritesRepository = XmlFavoritesRepository.OpenFile ("XamarinFavorites.xml").Result; search = new Search ("test"); viewModel = new SearchViewModel (App.Service, search); viewModel.SearchCompleted += (sender, e) => { if (viewModel.Groups == null) { // clear it out listView.ItemsSource = new string [1]; } else { listView.ItemsSource = viewModel.Groups; } }; viewModel.Error += (sender, e) => { // e.Exception }; BindingContext = viewModel; }
// Code to execute when the application is launching (eg, from Start) // This code will not execute when the application is reactivated private void Application_Launching (object sender, LaunchingEventArgs e) { // Load the directory var dataUri = new Uri ("EmployeeDirectory.WinPhone;component/Data/XamarinDirectory.csv", UriKind.Relative); var dataInfo = GetResourceStream (dataUri); using (var reader = new System.IO.StreamReader (dataInfo.Stream)) { DirectoryService = new MemoryDirectoryService (new CsvReader<Person> (reader).ReadAll ()); } // Load the favorites FavoritesRepository = XmlFavoritesRepository.OpenFile ("EmployeeDirectory.WinPhone;component/Data/XamarinFavorites.xml"); // Load the search try { SavedSearch = Search.Open ("SavedSearch.xml"); } catch (Exception) { SavedSearch = new Search ("SavedSearch.xml"); } }