コード例 #1
0
        // edit an ingredient
        public EditIngredientPageViewModel(
            IIngredientsRepository ingredientsRepository,
            INavigationService navigationService,
            IUserInteraction userInteraction,
            ICrossMediaService crossMediaService,
            DrinkIngredientViewModel drinkIngredientViewModel)
            : base(navigationService, userInteraction, crossMediaService)
        {
            DrinkIngredientViewModel = drinkIngredientViewModel;

            IngredientImage     = drinkIngredientViewModel.ByteImage;
            IngredientName      = drinkIngredientViewModel.Name;
            BottleIndex         = drinkIngredientViewModel.BottleIndex;
            SelectedBottleIndex = drinkIngredientViewModel.BottleIndex;

            AcceptCommand = ReactiveCommand.CreateFromTask(async _ =>
            {
                if (!await IsInputValidAsync())
                {
                    return;
                }

                DrinkIngredientViewModel.Name        = IngredientName;
                DrinkIngredientViewModel.ByteImage   = IngredientImage;
                DrinkIngredientViewModel.BottleIndex = BottleIndex;

                DrinkIngredientViewModel.UpdateIngredientModel();

                await ingredientsRepository.UpdateAsync(DrinkIngredientViewModel.Ingredient);
                await navigationService.PopAsync();
            });
        }
コード例 #2
0
        public async Task UpdateAsync(UpdateIngredient model, IValidator <UpdateIngredient> validator)
        {
            ValidateAndThrow(model, validator);

            var ingredient = _mapper.Map <Ingredient>(model);

            if (ingredient.TaskId.HasValue)
            {
                ingredient.Name = null;
            }
            else
            {
                ingredient.Name = ingredient.Name.Trim();
            }

            ingredient.ModifiedDate = DateTime.UtcNow;

            await _ingredientsRepository.UpdateAsync(ingredient);
        }