Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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");
        }
Esempio n. 6
0
        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);
            //}
        }
Esempio n. 7
0
        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");
        }