public async Task <IActionResult> SendFeedback(FeedbackViewModel viewModel) { viewModel.ParseAndValidateParameters(Request, m => m.HowEasyIsThisServiceToUse); viewModel.ParseAndValidateParameters(Request, m => m.HowDidYouHearAboutGpg); viewModel.ParseAndValidateParameters(Request, m => m.OtherSourceText); viewModel.ParseAndValidateParameters(Request, m => m.WhyVisitGpgSite); viewModel.ParseAndValidateParameters(Request, m => m.OtherReasonText); viewModel.ParseAndValidateParameters(Request, m => m.WhoAreYou); viewModel.ParseAndValidateParameters(Request, m => m.OtherPersonText); viewModel.ParseAndValidateParameters(Request, m => m.Details); if (viewModel.HasAnyErrors()) { // If there are any errors, return the user back to the same page to correct the mistakes return(View("SendFeedback", viewModel)); } WebService.CustomLogger.Information("Feedback has been received", viewModel); var feedbackDatabaseModel = ConvertFeedbackViewModelIntoFeedbackDatabaseModel(viewModel); SharedBusinessLogic.DataRepository.Insert(feedbackDatabaseModel); await SharedBusinessLogic.DataRepository.SaveChangesAsync(); return(View("FeedbackSent")); }