protected override async void OnNavigatedTo(NavigationEventArgs e) { NavigationService.Lock(); User user; switch (e.Parameter) { case string uid: user = await RestApiService <User> .Get(new FirebaseKey(uid, typeof(User).Name)); break; case FirebaseKey key: user = await RestApiService <User> .Get(key); break; case IFirebaseEntity databaseItem: user = await RestApiService <User> .Get(databaseItem.Key); break; default: await NotificationService.DisplayErrorMessage("Developer error."); throw new InvalidOperationException(); } if (user == null) { await NotificationService.DisplayErrorMessage("This user does not exist."); NavigationService.GoBack(); } ViewModel = new UserViewModel(user); InitializeComponent(); NavigationService.Unlock(); ViewModel.Model.Views++; if (!await RestApiService <User> .Update(ViewModel.Model)) { Logger.WriteLine($"Failed to increment view counter for user {ViewModel.Model.Key}."); } NavigationService.SetHeaderTitle($"{ViewModel.Model?.UserName}'s profile"); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { NavigationService.Lock(); ResourcePack resourcePack; switch (e.Parameter) { case FirebaseKey key: resourcePack = await RestApiService <ResourcePack> .Get(key); break; case IFirebaseEntity entity: resourcePack = await RestApiService <ResourcePack> .Get(entity.Key); break; default: await NotificationService.DisplayErrorMessage("Developer error."); throw new InvalidOperationException(); } if (resourcePack == null) { await NotificationService.DisplayErrorMessage("This resource pack does not exist."); NavigationService.GoBack(); } ViewModel = new ResourcePackViewModel(resourcePack); InitializeComponent(); NavigationService.Unlock(); ViewModel.Model.Views++; if (!await RestApiService <ResourcePack> .Update(ViewModel.Model)) { Logger.WriteLine($"Failed to increment view counter for code {ViewModel.Model.Key}."); } NavigationService.SetHeaderTitle(ViewModel.Model?.Name); }
public async Task <bool> Befriend() { if (AuthService.CurrentUser == null || Model == null) { await NotificationService.DisplayErrorMessage("Something went wrong. Try again later."); return(false); } if (AuthService.CurrentUser.Equals(Model)) { await NotificationService.DisplayErrorMessage("You can't be friends with yourself!"); return(false); } AuthService.CurrentUser.AddFriend(Model); await RestApiService <User> .Update(Model); await RestApiService <User> .Update(AuthService.CurrentUser); return(true); }