Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }