public async Task <IActionResult> OnPostAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            RequirePassword = await _userManager.HasPasswordAsync(user);

            if (RequirePassword)
            {
                if (!await _userManager.CheckPasswordAsync(user, Input.Password))
                {
                    ModelState.AddModelError(string.Empty, "Password not correct.");
                    return(Page());
                }
            }

            var services = await _externalServiceManager.GetExternalServicesData(new ExternalServicesDataQuery()
            {
                UserId = user.Id
            });

            var recipes = await _recipeManager.GetRecipes(new RecipesQuery()
            {
                UserId = user.Id
            });

            foreach (var recipe in recipes)
            {
                await _recipeManager.RemoveRecipe(recipe.Id);
            }

            foreach (var externalServiceData in services)
            {
                await _externalServiceManager.RemoveExternalServiceData(externalServiceData.Id);
            }
            var result = await _userManager.DeleteAsync(user);

            var userId = await _userManager.GetUserIdAsync(user);

            if (!result.Succeeded)
            {
                throw new InvalidOperationException($"Unexpected error occurred deleteing user with ID '{userId}'.");
            }

            await _signInManager.SignOutAsync();

            _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId);

            return(Redirect("~/"));
        }
Esempio n. 2
0
        public async Task <IActionResult> RemoveRecipePost(string id)
        {
            var recipe = await _recipeManager.GetRecipe(id, _userManager.GetUserId(User));

            if (recipe == null)
            {
                return(GetNotFoundActionResult());
            }

            await _recipeManager.RemoveRecipe(id);

            return(RedirectToAction("GetRecipes", new
            {
                statusMessage = new StatusMessageModel()
                {
                    Message = $"Recipe {recipe.Name} deleted successfully",
                    Severity = StatusMessageModel.StatusSeverity.Success
                }.ToString()
            }));
        }
Esempio n. 3
0
        private void DeleteRecipe_Click_1(object sender, RoutedEventArgs e)
        {
            if (dgCatalogUC.SelectedItems.Count == 0)
            {
                MessageBox.Show("Не виділено жодного рецепту", "Інформація",
                                MessageBoxButton.OK, MessageBoxImage.Information);
            }
            else if (MessageBox.Show("Ви дійсно бажаєте видалити видалені рецепти?", "Підтвердження вибору",
                                     MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                try
                {
                    List <Recipe> recipes = new List <Recipe>();

                    foreach (CatalogModel x in dgCatalogUC.SelectedItems)
                    {
                        Recipe res = new Recipe
                        {
                            ID          = x.ID,
                            Name        = x.Name,
                            CategoryID  = catalogViewModel.Categories.Where(c => c.Name == x.Category).Select(c => c.ID).First(),
                            Ingredients = x.Ingredients,
                            CookingText = x.CookingString,
                        };

                        recipes.Add(res);
                    }

                    recipeManager.RemoveRecipe(recipes);
                    dgCatalogUC.DataContext = catalogViewModel.Catalog.OrderBy(c => c.Name);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }