public async Task <IActionResult> Create(PreparationStepViewModel PreparationStepViewModel)
        {
            if (ModelState.IsValid)
            {
                var recipeId = PreparationStepViewModel.NewStep.RecipeId;
                var stepListCurrentRecipe = _context.PreparationSteps
                                            .Where(p => p.RecipeId == recipeId)
                                            .ToList();
                int highestRank;
                if (stepListCurrentRecipe.Count > 0)
                {
                    highestRank = stepListCurrentRecipe
                                  .Max(p => p.Rank);
                }
                else
                {
                    highestRank = 0;
                }

                PreparationStepViewModel.NewStep.Rank = ++highestRank;

                _context.Add(PreparationStepViewModel.NewStep);
                await _context.SaveChangesAsync();

                return(RedirectToAction("List", new { recipeId = recipeId }));
            }
            return(View());
        }
        // GET: PreparationSteps/List
        public async Task <IActionResult> List(int recipeId)
        {
            var PreparationStepViewModel = new PreparationStepViewModel();

            PreparationStepViewModel.PreparationSteps = await _context.PreparationSteps
                                                        .Where(p => p.RecipeId == recipeId)
                                                        .OrderBy(p => p.Rank)
                                                        .ToListAsync();

            PreparationStepViewModel.NewStep = new PreparationStep()
            {
                RecipeId = recipeId
            };
            return(View("Change", PreparationStepViewModel));
        }
示例#3
0
        public async Task CreateAsync(object argument)
        {
            var v = new PreparationUserControl();

            var vm = new PreparationStepViewModel(
                _serviceProvider,
                _nextStepFactory,
                (List <string>)argument
                );

            v.DataContext          = vm;
            _targetControl.Content = v;

            try
            {
                await vm !.StartAsync();
            }
            catch (Exception excp)
            {
                _targetControl.Content = excp.Message + Environment.NewLine + excp.StackTrace;
                Logging.LogVS(excp);
            }
        }