public async Task <IActionResult> OnPostAsync() { // Hooks to be added if (_moduleEvents.PreSubmitMovie != null) { var args = new PreSubmitMovieEventArgs(Movie.Title, Movie.Rating); var cancel = false; var invocationList = _moduleEvents.PreSubmitMovie.GetInvocationList(); foreach (Action <PreSubmitMovieEventArgs> eventModule in invocationList) { if (!cancel) { eventModule(args); if (args is CancelEventArgs) { cancel = (args as CancelEventArgs).Cancel; } } else { break; } } if (args.Cancel) { if (!string.IsNullOrWhiteSpace(args.ModelErrorProperty)) { ModelState.AddModelError("Movie" + args.ModelErrorProperty, args.ModelErrorMessage); } return(Page()); } Movie.Title = args.Title; Movie.Rating = args.Rating; } if (!ModelState.IsValid) { return(Page()); } _movieDbContext.Add(Movie); await _movieDbContext.SaveChangesAsync(); // Hooks to be added if (_moduleEvents.MovieSubmitted != null) { var args = new MovieSubmittedEventArgs(Movie.Title, Movie.Rating); _moduleEvents.MovieSubmitted?.Invoke(args); } return(RedirectToPage("/Index")); }
private void OnPreSubmitMovie(PreSubmitMovieEventArgs e) { e.Title = RemoveProfanity(e.Title); }