コード例 #1
0
ファイル: DishViewModel.cs プロジェクト: Yazurka/FoodApp
        private async void AddDishIngredient()
        {
            if (DishIngredientInProgress.Id == 0 || Math.Abs(DishIngredientInProgress.Amount) < double.Epsilon || string.IsNullOrEmpty(DishIngredientInProgress.Unit))
            {
                await m_popupDialog.Dialog.ShowMessageAsync(this, "Kan ikke legge til ingrediens", "Ingrediensen du prøver å legge til må velges fra nedtrekkslista, enhetsfeltet og mengdefeltet må ha en verdi");

                return;
            }
            if (DishAllreadyHasIngredient(DishIngredientInProgress))
            {
                await m_popupDialog.Dialog.ShowMessageAsync(this, "Kan ikke legge til ingrediens", "Ingrediensen du prøver å legge til har du allerede");

                return;
            }

            if (TheDish.Id != -1)
            {
                var dishIngredientsToPost = new List <DishIngredientCreateRequest> {
                    new DishIngredientCreateRequest {
                        Amount       = DishIngredientInProgress.Amount,
                        IngredientId = DishIngredientInProgress.Id,
                        Unit         = DishIngredientInProgress.Unit,
                        Comment      = DishIngredientInProgress.Comment
                    }
                };
                await m_foodFacade.AddIngredientToDish(TheDish.Id, dishIngredientsToPost);
            }
            TheDish.Ingredients.Add(DishIngredientInProgress);
            DishIngredientInProgress = new DishIngredientResult();
            SearchText = "";
            OnPropertyChanged(nameof(SearchText));
            OnPropertyChanged(nameof(DishIngredientInProgress));
        }
コード例 #2
0
ファイル: DishViewModel.cs プロジェクト: Yazurka/FoodApp
        public async Task Initialize()
        {
            var dishes = await m_foodFacade.GetAllDishes(100000, 0);

            dishes.Sort((light, dishLight) => light.Name.CompareTo(dishLight.Name));
            Dishes = new ObservableCollection <DishLight>(dishes);
            DishIngredientInProgress = new DishIngredientResult();
            TagInProgress            = new Tag();
            OnPropertyChanged(nameof(Dishes));
        }
コード例 #3
0
ファイル: DishViewModel.cs プロジェクト: Yazurka/FoodApp
        private void SelectionChanged()
        {
            if (SelectedDish == null)
            {
                OnPropertyChanged(string.Empty);
                return;
            }
            m_viewDisabler.Disable("Laster...", GetAndSetChosenDish());

            DishIngredientInProgress = new DishIngredientResult();
            OnPropertyChanged(nameof(TheDish));
        }
コード例 #4
0
 public async Task DeleteDishIngredient(int dishId, DishIngredientResult dishIngredient)
 {
     await m_restClient.Delete($"DishIngredient?dishid={dishId}&ingredientIds={dishIngredient.Id}");
 }
コード例 #5
0
ファイル: DishViewModel.cs プロジェクト: Yazurka/FoodApp
        private bool DishAllreadyHasIngredient(DishIngredientResult dishIngredient)
        {
            var res = TheDish.Ingredients.Select(x => x.Id).Where(i => i == dishIngredient.Id).ToArray();

            return(res.Count() > 0);
        }