Ejemplo n.º 1
0
        public async Task <PantryModel> GetPantryAsync(string token, int userId)
        {
            await Task.Delay(100);

            var         uri        = new Uri(string.Format(Constants.RestUrl + "/api/mypantry", string.Empty));
            string      authToken  = Preferences.Get("api_key", "null");
            PantryModel userPantry = await _requestService.GetAsync <PantryModel>(uri.ToString(), authToken);

            return(userPantry);
        }
Ejemplo n.º 2
0
        public PantryViewModel()
        {
            navManager = PageNavigationManager.Instance;
            AddItemButton_ClickedCommand = new Command(() =>
            {
                navManager.showItemPage(this.pantryList);
            });

            //_service = new PantryMockService();
            _service = new PantryService(new RequestService());
            Task.Run(async() => {
                try
                {
                    PantryModel GetDetails = await _service.GetPantryAsync("abs", 1);
                    PantryList             = new ObservableCollection <PantryItemModel>(GetDetails.Items);
                }
                catch (System.OperationCanceledException ex)
                {
                    Console.WriteLine($"Text load cancelled: {ex.Message}");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            });

            ItemSelectedCommand       = new Command <PantryItemModel>(pantryItemSelected);
            EditItemSelectedCommand   = new Command <PantryItemModel>(pantryEditItemSelected);
            DeleteItemSelectedCommand = new Command <PantryItemModel>(pantryDeleteItemSelected);

            MessagingCenter.Subscribe <ItemViewModel, PantryItemModel>(this, "New Item", (sender, receivedPantryItem) =>
            {
                this.pantryList.Add(receivedPantryItem);
                _service.SetPantryAsync("abs", receivedPantryItem);
            });

            MessagingCenter.Subscribe <EditItemViewModel, PantryItemModel>(this, "Edit Item", (sender, pantryItem) =>
            {
                int index = 0;
                bool done = true;
                while (done)
                {
                    if (this.pantryList[index].Id == pantryItem.Id)
                    {
                        this.pantryList[index] = pantryItem;
                        done = false;
                    }
                    index++;
                }
            });
        }
Ejemplo n.º 3
0
        public async Task <bool> DeletePantryItemAsync(string token, int pantryItemId)
        {
            await Task.Delay(100);

            PantryModel newPantryModel = userPantry;

            for (var i = 0; i < userPantry.Items.Count; i++)
            {
                if (userPantry.Items[i].Id == pantryItemId)
                {
                    userPantry.Items.RemoveAt(i);
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 4
0
        public async Task <bool> EditPantryItemAsync(string token, PantryItemModel pantryItemModel)
        {
            await Task.Delay(100);

            PantryModel newPantryModel = userPantry;

            for (var i = 0; i < userPantry.Items.Count; i++)
            {
                if (userPantry.Items[i].Id == pantryItemModel.Id)
                {
                    userPantry.Items[i] = pantryItemModel;
                    return(true);
                }
            }
            return(false);
        }