public async Task <IActionResult> OnPost() { try { var unparsedTableauInput = FormResolver.ResolveForm(HttpContext.Request.Form); var(tableauInput, errorForm) = ConversionService.ParseTableauInput(unparsedTableauInput); if (errorForm.HasErrorResponse()) { ErrorResponseForm = errorForm; return(Page()); } var tableauSolution = TableauSolutionService.ComputeTableauSolution(tableauInput); EventService.LogTableauSolution(tableauSolution); var userRequest = new AppSolutionRequest() { TableauType = TableauSolutionCategorizer.CategorizeTableauSolution(tableauSolution.SolutionNode), ExpectedTableauType = unparsedTableauInput.ExpectedTableauType, SolutionId = tableauSolution.SolutionId }; HttpContext.Session.SetString(SolutionName, JsonConvert.SerializeObject(tableauSolution)); HttpContext.Session.SetString(RequestName, JsonConvert.SerializeObject(userRequest)); await EventService.CreateAppSolutionRequest(userRequest, HttpContext.User); return(RedirectToPage("SolutionView", new { isSession = true, solutionViewType = SolutionViewType.Text })); } catch (FormResolverException) { return(RedirectToPage("../Error")); } }
public TableauRequestModel(FormResolver formResolver) { FormResolver = formResolver; }