private async Task Initialise()
        {
            IsRunning = true;
            RaisePropertyChanged("IsRunning");
            IEnumerable <Models.LeaderSummary> summaries = await _leaderService.GetLeadersAsync(false);

            int myId = await _userService.GetMyUserIdAsync();

            foreach (Models.LeaderSummary summary in summaries)
            {
                LeaderSummaryViewModel vm = new LeaderSummaryViewModel(summary);
                vm.IsMe = (summary.id == myId);

                Leaders.Add(vm);
            }

            IsRunning = false;
            RaisePropertyChanged("IsRunning");

            SearchResults = Leaders;
            RaisePropertyChanged("SearchResults");

            var mysummary = Leaders.FirstOrDefault(l => l.IsMe == true);

            ScrollToMe?.Invoke(mysummary);
        }
 public ProfileViewModel(LeaderSummaryViewModel vm)
 {
     IsLoading = true;
     RaisePropertyChanged("IsLoading");
     ProfilePic = vm.ProfilePic;
     Name       = vm.Name;
     Email      = vm.Title;
     userId     = vm.Id;
     Points     = String.Format("{0:n0}", vm.BaseScore);
     _          = Initialise(false);
 }
 private void HandleLeaderTapped(LeaderSummaryViewModel leader)
 {
     if (leader.IsMe)
     {
         Shell.Current.Navigation.PushAsync(new Profile());
     }
     else
     {
         Shell.Current.Navigation.PushAsync(new Profile(leader));
     }
 }
        public async void Refresh()
        {
            // = true;
            //RaisePropertyChanged("IsRunning");
            var summaries = await _leaderService.GetLeadersAsync(false);

            int myId = await _userService.GetMyUserIdAsync();

            Leaders.Clear();

            foreach (var summary in summaries)
            {
                LeaderSummaryViewModel vm = new LeaderSummaryViewModel(summary);
                vm.IsMe = (summary.id == myId);

                Leaders.Add(vm);
            }

            IsRefreshing = false;
            RaisePropertyChanged("IsRefreshing");
        }