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));
            }
        }