private async Task <IActionResult> Edit(string viewName, bool partial, string formUrlSlug, string sectionUrlSlug) { var cts = TaskHelper.CreateChildCancellationTokenSource(ClientDisconnectedToken()); var formModel = await _dynamicFormsPresentationService.CreateFormModelFromDbAsync(formUrlSlug, sectionUrlSlug, cts.Token); if (formModel == null) { return(BadRequest()); } var formSubmissionId = _cookieService.Get(formUrlSlug); if (!(await _dynamicFormsPresentationService.IsValidSubmissionUrlAsync(formSubmissionId, formUrlSlug, sectionUrlSlug, ControllerName, cts.Token))) { return(BadRequest()); } if (string.IsNullOrEmpty(_cookieService.Get(formUrlSlug))) { formSubmissionId = Guid.NewGuid().ToString(); _cookieService.Set(formUrlSlug, formSubmissionId, 14); } else { if (sectionUrlSlug == null) { sectionUrlSlug = await _dynamicFormsPresentationService.GetFirstSectionUrlSlugAsync(formUrlSlug, ControllerName); } await _dynamicFormsPresentationService.PopulateFormModelFromDbAsync(formModel, formSubmissionId, sectionUrlSlug); } var formContainer = await _dynamicFormsPresentationService.CreateFormContainerAsync(formModel, formUrlSlug, sectionUrlSlug, formSubmissionId, ControllerName, cts.Token); ViewBag.DetailsMode = false; ViewBag.PageTitle = Title; ViewBag.Admin = false; if (partial) { return(PartialView(viewName, formContainer)); } else { return(View(viewName, formContainer)); } }