public string GetDefault(Webpage webpage, FormSubmittedStatus submittedStatus)
        {
            if (webpage == null)
            {
                return(string.Empty);
            }

            var formProperties = webpage.FormProperties.OrderBy(x => x.DisplayOrder);

            if (!formProperties.Any())
            {
                return(string.Empty);
            }

            var form = GetForm(webpage);

            foreach (var property in formProperties)
            {
                string elementHtml            = string.Empty;
                IFormElementRenderer renderer = _elementRendererManager.GetElementRenderer(property);
                elementHtml += _labelRenderer.AppendLabel(property);
                var existingValue = submittedStatus.Data[property.Name];
                elementHtml += renderer.AppendElement(property, existingValue, _siteSettings.FormRendererType)
                               .ToString(renderer.IsSelfClosing
                                                        ? TagRenderMode.SelfClosing
                                                        : TagRenderMode.Normal);
                elementHtml += _validationMessaageRenderer.AppendRequiredMessage(property);
                var elementContainer = _elementRendererManager.GetElementContainer(_siteSettings.FormRendererType, property);
                if (elementContainer != null)
                {
                    elementContainer.InnerHtml += elementHtml;
                    form.InnerHtml             += elementContainer;
                }
                else
                {
                    form.InnerHtml += elementHtml;
                }
            }

            var div = new TagBuilder("div");

            div.InnerHtml  += GetSubmitButton(webpage).ToString(TagRenderMode.SelfClosing);
            form.InnerHtml += div;

            if (submittedStatus.Submitted)
            {
                form.InnerHtml += new TagBuilder("br");
                form.InnerHtml += _submittedMessageRenderer.AppendSubmittedMessage(webpage, submittedStatus);
            }

            if (_siteSettings.HasHoneyPot)
            {
                form.InnerHtml += _siteSettings.GetHoneypot();
            }

            return(form.ToString());
        }
Esempio n. 2
0
 private MatchEvaluator AddLabel(IList <FormProperty> formProperties)
 {
     return(match =>
     {
         var formProperty =
             formProperties.FirstOrDefault(
                 property => property.Name.Equals(match.Groups[1].Value, StringComparison.OrdinalIgnoreCase));
         return formProperty == null
                               ? string.Empty
                               : _labelRenderer.AppendLabel(formProperty).ToString();
     });
 }
        public void DefaultFormRenderer_GetDefault_ShouldCallAppendLabelOnLabelRendererForEachProperty()
        {
            var textBox = new TextBox {
                Name = "test-1"
            };
            var stubWebpage = new StubWebpage
            {
                FormProperties = new List <FormProperty> {
                    textBox
                }
            };
            var formElementRenderer = A.Fake <IFormElementRenderer>();

            A.CallTo(() => _elementRendererManager.GetElementRenderer <FormProperty>(textBox))
            .Returns(formElementRenderer);
            A.CallTo(() => formElementRenderer.AppendElement(textBox, _existingValue, _siteSettings.FormRendererType)).Returns(new TagBuilder("input"));

            _defaultFormRenderer.GetDefault(stubWebpage, new FormSubmittedStatus(false, null, _formCollection));

            A.CallTo(() => _labelRenderer.AppendLabel(textBox)).MustHaveHappened();
        }