public async Task ExecuteLoadFlagsCommand()
		{
			if (IsBusy)
				return;

			IsBusy = true;

			try
			{
				
				var userManager = new UserManager(Settings.AccessToken);
			
				var flags = await userManager.GetFlags();
				//Use linq to sorty our monkeys by name and then group them by the new name sort property
				var sorted = from flag in flags
							 orderby flag.AlertLevel
							 group flag by flag.AlertLevel.ToString() into flagGroup
							 select new Grouping<string, Flag>(flagGroup.Key, flagGroup);

				//create a new collection of groups
				FlagsGrouped = new ObservableCollection<Grouping<string, Flag>>(sorted);
				OnPropertyChanged("FlagsGrouped");
			}
			catch (Exception ex)
			{
				var page = new ContentPage();
				page.DisplayAlert("Error", "Unable to load flags.", "OK"); ;
			}
			finally
			{
				IsBusy = false;
			}
		}
Example #2
0
		public async Task ExecuteFlagFriendCommand (long friendId, string name)
		{
			if (IsBusy)
				return;

			using (BusyContext ()) {
				try {
					if (!await RefreshToken ())
						return;

					var userManager = new UserManager (Settings.AccessToken);

					var flagList = await userManager.GetFlags ();

					if (flagList.Count == 0)
						return;

					LoadingMessage = "Loading...";
					App.MessageDialog.SelectOption ("Report Friend For:", flagList.Select (f => f.Description).ToArray (), async (which) => {
						try {
							var firstFlag = flagList [which];
							await userManager.FlagUser ((int)friendId, firstFlag.Id);
							RaiseNotification ("User has been flagged for administrative review.");
						} catch (Exception ex) {
							App.Logger.Report (ex);
							RaiseError ("Unable to flag, please try again.");
						}
					});
				} catch (Exception ex) {
					App.Logger.Report (ex);
					RaiseError ("Unable to flag, please try again.");
				}
			}
		}