public async Task <DynamicFormContainer> CreateFormSummaryContainerAsync(string formUrlSlug, string formSubmissionId, string containerDiv, string controllerName, CancellationToken cancellationToken = default(CancellationToken)) { var formContainer = new DynamicFormContainer(); formContainer.Navigation = await GetFormNavigationAsync(formUrlSlug, "summary", formSubmissionId, controllerName, cancellationToken); var sections = await GetSectionsAsync(formUrlSlug, formSubmissionId, controllerName, cancellationToken); var sectionNames = await GetSectionNamesAsync(formUrlSlug, formSubmissionId, controllerName, cancellationToken); foreach (var section in sections) { var headingForm = new DynamicForm(); var routeValueDictionary = new RouteValueDictionary(); routeValueDictionary.Add(DynamicFormsValueProviderKeys.FormUrlSlug, formUrlSlug); routeValueDictionary.Add(DynamicFormsValueProviderKeys.SectionUrlSlug, section.Key); var sectionLink = _htmlHelperGeneratorService.HtmlHelper("").ActionLink(sectionNames[section.Key], "Edit", controllerName, routeValueDictionary, new { @class = "text-success", data_ajax = "true", data_ajax_method = "GET", data_ajax_mode = "replace", data_ajax_update = containerDiv }).Render().Replace("%2F", "/"); headingForm.Add("SectionHeading", sectionLink); headingForm.AddAttribute("SectionHeading", new HeadingAttributeH3("text-success")); formContainer.Forms.Add(headingForm); var formModel = await CreateFormModelFromDbAsync(formUrlSlug, section.Key); await PopulateFormModelFromDbAsync(formModel, formSubmissionId, section.Key, cancellationToken); formContainer.Forms.Add(formModel); var footer = new DynamicForm(); footer.Add("EditButton", ""); footer.AddAttribute("EditButton", new NoLabelAttribute()); footer.AddAttribute("EditButton", new EditLinkAttribute("Edit", controllerName, containerDiv)); footer.AddAttribute("EditButton", new LinkRouteValueAttribute(DynamicFormsValueProviderKeys.FormUrlSlug, formUrlSlug)); footer.AddAttribute("EditButton", new LinkRouteValueAttribute(DynamicFormsValueProviderKeys.SectionUrlSlug, section.Key)); formContainer.Forms.Add(footer); } var additionalControls = new DynamicForm(); additionalControls.Add("Submit", "Submit"); additionalControls.AddAttribute("Submit", new NoLabelAttribute()); additionalControls.AddAttribute("Submit", new SubmitButtonAttribute("btn btn-block btn-success btn-sm")); formContainer.Forms.Add(additionalControls); return(formContainer); }
public async Task <DynamicFormContainer> CreateFormContainerAsync(DynamicForm formModel, string formUrlSlug, string sectionUrlSlug, string formSubmissionId, string controllerName, CancellationToken cancellationToken = default(CancellationToken)) { //Add Additional controls formModel.Add("Submit", "Continue"); formModel.AddAttribute("Submit", new NoLabelAttribute()); formModel.AddAttribute("Submit", new SubmitButtonAttribute("btn btn-block btn-success btn-sm")); var navigation = await GetFormNavigationAsync(formUrlSlug, sectionUrlSlug, formSubmissionId, controllerName, cancellationToken); var formContainer = new DynamicFormContainer(); formContainer.Forms.Add(formModel); formContainer.Navigation = navigation; return(formContainer); }