public static async Task Navigate(string pageName, object parameter = null) { if (!Initialized) { Logger.WriteLine("Can't navigate. NavigationService is not initialized."); return; } if (string.IsNullOrWhiteSpace(pageName)) { Logger.WriteLine("Can't navigate. Provided page name is empty."); return; } switch (pageName) { case "Home": Navigate(typeof(HomePage), parameter, pageName); return; case "User": Navigate(typeof(UserPage), parameter, pageName); return; case "Users": Navigate(typeof(UsersPage), parameter, pageName); return; case "ResourcePack": Navigate(typeof(ResourcePackPage), parameter, pageName); return; case "Resource Packs": Navigate(typeof(ResourcePacksPage), parameter, pageName); return; case "Convert a Resource Pack": Navigate(typeof(ResourcePackPage), parameter, pageName); return; case "Default Resource Packs": Navigate(typeof(DownloadVersionsPage), parameter, pageName); return; case "Upload Resource Pack": await new AddResourcePackDialog().ShowAsync(); return; case "Comment": var comment = await RestApiService <Reply> .Get((FirebaseKey)parameter); await new ReplyDialog(comment).ShowAsync(); return; default: break; } }
public async Task RefreshNewestUsers() { NewestUsers.Clear(); var users = await RestApiService <User> .Get(); if (users == null) { return; } users.OrderByDescending(x => x.Created).ToList().ForEach(NewestUsers.Add); }
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); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { NavigationService.Lock(); ResourcePack resourcePack; switch (e.Parameter) { case string uid: resourcePack = await RestApiService <ResourcePack> .Get(new FirebaseKey(uid, typeof(ResourcePack).Name)); break; case FirebaseKey key: resourcePack = await RestApiService <ResourcePack> .Get(key); break; case IFirebaseEntity databaseItem: resourcePack = await RestApiService <ResourcePack> .Get(databaseItem.Key); break; default: await NotificationService.DisplayErrorMessage("Developer error."); throw new InvalidOperationException(); } if (resourcePack == null) { await NotificationService.DisplayErrorMessage("This code does not exist."); NavigationService.GoBack(); } ViewModel = new ResourcePackSettingsViewModel(resourcePack); InitializeComponent(); NavigationService.Unlock(); NavigationService.SetHeaderTitle($"{ViewModel.Model?.Name} - Settings"); }
private async Task MostrarRegiones() { var url = $"{Constants.Region}/{ID = +1}"; _region = await RestApiService.Get <Region>(url); if (_region != null) { ID = _region.Id; Nombre = _region.name; Url = _region.url; } //var lista = await RestApiService.Get<List<Region>>(url); //foreach (var item in lista) //{ // ListaRegiones.Add(item); //} }
protected override async void OnNavigatedTo(NavigationEventArgs e) { NavigationService.Lock(); var users = await RestApiService <User> .Get(); if (users == null) { await NotificationService.DisplayErrorMessage("Could not retrieve users from database."); NavigationService.GoBack(); } ViewModel = new UsersViewModel(users); InitializeComponent(); NavigationService.Unlock(); NavigationService.SetHeaderTitle("Users"); }