public async Task <ActionResult> DeleteClub([Bind(Prefix = "ConfirmDeleteRequest", Include = "RequiredText,ConfirmationText")] MatchingTextConfirmation model) { if (model is null) { throw new System.ArgumentNullException(nameof(model)); } var viewModel = new DeleteClubViewModel(CurrentPage, Services.UserService) { Club = await _clubDataSource.ReadClubByRoute(Request.RawUrl).ConfigureAwait(false), }; viewModel.IsAuthorized = _authorizationPolicy.IsAuthorized(viewModel.Club); if (viewModel.IsAuthorized[AuthorizedAction.DeleteClub] && ModelState.IsValid) { var memberGroup = Services.MemberGroupService.GetById(viewModel.Club.MemberGroupKey.Value); if (memberGroup != null) { Services.MemberGroupService.Delete(memberGroup); } var currentMember = Members.GetCurrentMember(); await _clubRepository.DeleteClub(viewModel.Club, currentMember.Key, currentMember.Name).ConfigureAwait(false); _cacheOverride.OverrideCacheForCurrentMember(CacheConstants.TeamListingsCacheKeyPrefix); viewModel.Deleted = true; } viewModel.Metadata.PageTitle = $"Delete {viewModel.Club.ClubName}"; viewModel.Breadcrumbs.Add(new Breadcrumb { Name = Constants.Pages.Teams, Url = new Uri(Constants.Pages.TeamsUrl, UriKind.Relative) }); if (!viewModel.Deleted) { viewModel.Breadcrumbs.Add(new Breadcrumb { Name = viewModel.Club.ClubName, Url = new Uri(viewModel.Club.ClubRoute, UriKind.Relative) }); } return(View("DeleteClub", viewModel)); }
public async override Task <ActionResult> Index(ContentModel contentModel) { if (contentModel is null) { throw new System.ArgumentNullException(nameof(contentModel)); } var model = new DeleteClubViewModel(contentModel.Content, Services?.UserService) { Club = await _clubDataSource.ReadClubByRoute(Request.RawUrl).ConfigureAwait(false) }; if (model.Club == null) { return(new HttpNotFoundResult()); } else { model.ConfirmDeleteRequest.RequiredText = model.Club.ClubName; model.IsAuthorized = _authorizationPolicy.IsAuthorized(model.Club); model.Metadata.PageTitle = "Delete " + model.Club.ClubName; model.Breadcrumbs.Add(new Breadcrumb { Name = Constants.Pages.Teams, Url = new Uri(Constants.Pages.TeamsUrl, UriKind.Relative) }); if (!model.Deleted) { model.Breadcrumbs.Add(new Breadcrumb { Name = model.Club.ClubName, Url = new Uri(model.Club.ClubRoute, UriKind.Relative) }); } return(CurrentTemplate(model)); } }