コード例 #1
0
		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;
		}
コード例 #2
0
		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;
		}
コード例 #3
0
		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 ();
		}
コード例 #4
0
		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;
		}
コード例 #5
0
        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;
        }
コード例 #6
0
		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; 
		}
コード例 #7
0
        // 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");
            }
        }