Ejemplo n.º 1
0
        private static TagBuilder WrapInListItem(string text)
        {
            var li = new TagBuilder("li");

            SetInnerText(li, text);
            return(li);
        }
Ejemplo n.º 2
0
        public static System.Web.Mvc.MvcHtmlString HiddenForDateTime <TModel, TValue>
            (this System.Web.Mvc.HtmlHelper <TModel> htmlHelper,
            System.Linq.Expressions.Expression <System.Func <TModel, TValue> > expression, object value)
            where TModel : class
        {
            string strHtmlFieldName =
                System.Web.Mvc.ExpressionHelper.GetExpressionText(expression);

            string strFullName =
                htmlHelper.ViewContext.ViewData.TemplateInfo
                .GetFullHtmlFieldName(strHtmlFieldName);

            var strTag =
                new System.Web.Mvc.TagBuilder("input");

            strTag.GenerateId(strFullName);

            strTag.Attributes.Add("type", "hidden");
            strTag.Attributes.Add("name", strFullName);

            string strValue = string.Empty;

            if (value != null)
            {
                System.DateTime dtmValue =
                    (System.DateTime)value;

                strValue = dtmValue.ToString("yyyy/MM/dd HH:mm:ss");
            }

            strTag.Attributes.Add("value", strValue);

            return(new System.Web.Mvc.MvcHtmlString(strTag.ToString()));
        }
Ejemplo n.º 3
0
        public static System.Web.Mvc.MvcHtmlString DtxLabel
            (this System.Web.Mvc.HtmlHelper html,
            string labelText,
            string expression = null,
            int column        = 0,
            System.Collections.Generic.IDictionary <string, object> htmlAttributes = null)
        {
            System.Web.Mvc.TagBuilder label =
                new System.Web.Mvc.TagBuilder("label");

            if (htmlAttributes != null)
            {
                label.MergeAttributes(htmlAttributes);
            }

            label.SetInnerText(labelText);

            label.AddCssClass("control-label");

            if ((column >= 1) && (column <= 12))
            {
                label.AddCssClass("col-sm-" + column);
            }

            string labelString =
                label.ToString(System.Web.Mvc.TagRenderMode.Normal);

            var result =
                System.Web.Mvc.MvcHtmlString.Create(labelString);

            return(result);
        }
Ejemplo n.º 4
0
        private static TagBuilder PageCountAndLocationText(IPagedList list, PagedListRenderOptions options)
        {
            var text = new TagBuilder("a");

            SetInnerText(text, string.Format(options.PageCountAndCurrentLocationFormat, list.PageNumber, list.PageCount));

            return(WrapInListItem(text, options, "PagedList-pageCountAndLocation", "disabled"));
        }
Ejemplo n.º 5
0
        private static TagBuilder ItemSliceAndTotalText(IPagedList list, PagedListRenderOptions options)
        {
            var text = new TagBuilder("a");

            SetInnerText(text, string.Format(options.ItemSliceAndTotalFormat, list.FirstItemOnPage, list.LastItemOnPage, list.TotalItemCount));

            return(WrapInListItem(text, options, "PagedList-pageCountAndLocation", "disabled"));
        }
Ejemplo n.º 6
0
        private static TagBuilder Ellipses(PagedListRenderOptions options)
        {
            var a = new TagBuilder("a");

            AppendHtml(a, options.EllipsesFormat);

            return(WrapInListItem(a, options, "PagedList-ellipses", "disabled"));
        }
Ejemplo n.º 7
0
        internal static void SetInnerText(TagBuilder tagBuilder, string innerText)
        {
#if MvcOld
            tagBuilder.SetInnerText(innerText);
#else
            tagBuilder.InnerHtml.AppendHtml(innerText);
#endif
        }
Ejemplo n.º 8
0
        internal static void AppendHtml(TagBuilder tagBuilder, string innerHtml)
        {
#if MvcOld
            tagBuilder.InnerHtml += innerHtml;
#else
            tagBuilder.InnerHtml.AppendHtml(innerHtml);
#endif
        }
Ejemplo n.º 9
0
        internal static string TagBuilderToString(TagBuilder tagBuilder)
        {
#if MvcOld
            return(tagBuilder.ToString());
#else
            using (var writer = new System.IO.StringWriter())
            {
                tagBuilder.WriteTo(writer, System.Text.Encodings.Web.HtmlEncoder.Default);
                return(writer.ToString());
            }
#endif
        }
Ejemplo n.º 10
0
        public static System.Web.Mvc.MvcHtmlString DtxLabelFor <TModel, TValue>
            (this System.Web.Mvc.HtmlHelper <TModel> html,
            System.Linq.Expressions.Expression <System.Func <TModel, TValue> > expression,
            int column = 0, bool ignoreFor = false,
            System.Collections.Generic.IDictionary <string, object> htmlAttributes = null)
        {
            System.Web.Mvc.ModelMetadata modelMetadata =
                System.Web.Mvc.ModelMetadata.FromLambdaExpression(expression, html.ViewData);

            string htmlFieldName =
                System.Web.Mvc.ExpressionHelper.GetExpressionText(expression);

            string labelText =
                modelMetadata.DisplayName ??
                modelMetadata.PropertyName ??
                htmlFieldName.Split('.').Last();

            if (string.IsNullOrEmpty(labelText))
            {
                return(System.Web.Mvc.MvcHtmlString.Empty);
            }

            System.Web.Mvc.TagBuilder label =
                new System.Web.Mvc.TagBuilder("label");

            if (htmlAttributes != null)
            {
                label.MergeAttributes(htmlAttributes);
            }

            if (ignoreFor == false)
            {
                label.Attributes.Add("for",
                                     html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
            }

            label.SetInnerText(labelText);

            label.AddCssClass("control-label");

            if ((column >= 1) && (column <= 12))
            {
                label.AddCssClass("col-sm-" + column);
            }

            string labelString =
                label.ToString(System.Web.Mvc.TagRenderMode.Normal);

            var result =
                System.Web.Mvc.MvcHtmlString.Create(labelString);

            return(result);
        }
Ejemplo n.º 11
0
        internal static string TagBuilderToString(TagBuilder tagBuilder)
        {
#if MvcOld
            return(tagBuilder.ToString());
#else
            using (var writer = new System.IO.StringWriter())
            {
                tagBuilder.WriteTo(writer, Microsoft.Extensions.WebEncoders.HtmlEncoder.Default);
                return(writer.ToString());
            }
#endif
        }
Ejemplo n.º 12
0
        private static TagBuilder First(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options)
        {
            const int targetPageNumber = 1;
            var       first            = new TagBuilder("a");

            AppendHtml(first, string.Format(options.LinkToFirstPageFormat, targetPageNumber));
            if (list.IsFirstPage)
            {
                return(WrapInListItem(first, options, "PagedList-skipToFirst", "disabled"));
            }

            first.Attributes["href"] = generatePageUrl(targetPageNumber);
            return(WrapInListItem(first, options, "PagedList-skipToFirst"));
        }
Ejemplo n.º 13
0
        private static TagBuilder Last(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options)
        {
            var targetPageNumber = list.PageCount;
            var last             = new TagBuilder("a");

            AppendHtml(last, string.Format(options.LinkToLastPageFormat, targetPageNumber));

            if (list.IsLastPage)
            {
                return(WrapInListItem(last, options, "PagedList-skipToLast", "disabled"));
            }

            last.Attributes["href"] = generatePageUrl(targetPageNumber);
            return(WrapInListItem(last, options, "PagedList-skipToLast"));
        }
Ejemplo n.º 14
0
        private static TagBuilder WrapInListItem(TagBuilder inner, PagedListRenderOptions options, params string[] classes)
        {
            var li = new TagBuilder("li");

            foreach (var @class in classes)
            {
                li.AddCssClass(@class);
            }
            if (options.FunctionToTransformEachPageLink != null)
            {
                return(options.FunctionToTransformEachPageLink(li, inner));
            }
            AppendHtml(li, TagBuilderToString(inner));
            return(li);
        }
Ejemplo n.º 15
0
        public static System.Web.IHtmlString DtxReset
            (this System.Web.Mvc.HtmlHelper htmlHelper, string caption)
        {
            System.Web.Mvc.TagBuilder button =
                new System.Web.Mvc.TagBuilder("button");

            button.SetInnerText(caption);

            button.AddCssClass("btn");
            button.AddCssClass("btn-default");

            button.Attributes.Add("type", "reset");

            return(htmlHelper.Raw(button.ToString()));
        }
Ejemplo n.º 16
0
        private static TagBuilder Previous(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options)
        {
            var targetPageNumber = list.PageNumber - 1;
            var previous         = new TagBuilder("a");

            AppendHtml(previous, string.Format(options.LinkToPreviousPageFormat, targetPageNumber));
            previous.Attributes["rel"] = "prev";

            if (!list.HasPreviousPage)
            {
                return(WrapInListItem(previous, options, "PagedList-skipToPrevious", "disabled"));
            }

            previous.Attributes["href"] = generatePageUrl(targetPageNumber);
            return(WrapInListItem(previous, options, "PagedList-skipToPrevious"));
        }
Ejemplo n.º 17
0
        private static TagBuilder Next(IPagedList list, Func <int, string> generatePageUrl, PagedListRenderOptions options)
        {
            var targetPageNumber = list.PageNumber + 1;
            var next             = new TagBuilder("a");

            AppendHtml(next, string.Format(options.LinkToNextPageFormat, targetPageNumber));
            next.Attributes["rel"] = "next";

            if (!list.HasNextPage)
            {
                return(WrapInListItem(next, options, "PagedList-skipToNext", "disabled"));
            }

            next.Attributes["href"] = generatePageUrl(targetPageNumber);
            return(WrapInListItem(next, options, "PagedList-skipToNext"));
        }
Ejemplo n.º 18
0
        protected override void BuildControl(System.Web.Mvc.TagBuilder builder, CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext)
        {
            base.BuildControl(builder, field, value, htmlAttributes, viewContext);

            var html = new StringBuilder();

            html.Append("<option value=\"\"></option>");

            foreach (var item in field.SelectionItems)
            {
                html.AppendFormat("<option value=\"{0}\">{1}</option>", item.Value, item.Text)
                .AppendLine();
            }

            builder.InnerHtml = html.ToString();
        }
Ejemplo n.º 19
0
        public static System.Web.IHtmlString DtxTextBox
            (this System.Web.Mvc.HtmlHelper htmlHelper, string name, object value = null)
        {
            System.Web.Mvc.TagBuilder input =
                new System.Web.Mvc.TagBuilder("input");

            input.Attributes.Add("id", name);
            input.Attributes.Add("name", name);
            input.Attributes.Add("type", "text");

            if (value != null)
            {
                input.Attributes.Add("value", value.ToString());
            }

            return(htmlHelper.Raw(input.ToString()));
        }
Ejemplo n.º 20
0
        public static System.Web.IHtmlString DtxSubmit
            (this System.Web.Mvc.HtmlHelper htmlHelper, string name, string caption)
        {
            System.Web.Mvc.TagBuilder button =
                new System.Web.Mvc.TagBuilder("button");

            button.SetInnerText(caption);

            button.AddCssClass("btn");
            button.AddCssClass("btn-primary");

            button.Attributes.Add("id", name);
            button.Attributes.Add("name", name);
            button.Attributes.Add("type", "submit");

            return(htmlHelper.Raw(button.ToString()));
        }
Ejemplo n.º 21
0
        internal static string TagBuilderToString(TagBuilder tagBuilder, TagRenderMode renderMode)
        {
#if MvcOld
            return(tagBuilder.ToString(renderMode));
#else
            var renderModeCopy = tagBuilder.TagRenderMode;
            tagBuilder.TagRenderMode = renderMode;

            string html;
            using (var writer = new System.IO.StringWriter())
            {
                tagBuilder.WriteTo(writer, Microsoft.Extensions.WebEncoders.HtmlEncoder.Default);
                html = writer.ToString();
            }
            tagBuilder.TagRenderMode = renderModeCopy;
            return(html);
#endif
        }
Ejemplo n.º 22
0
        public static System.Web.IHtmlString DtxLabel
            (this System.Web.Mvc.HtmlHelper htmlHelper, string expression, string labelText)
        {
            // Solution (1)
            System.Web.Mvc.TagBuilder label =
                new System.Web.Mvc.TagBuilder("label");

            label.SetInnerText(labelText);
            label.Attributes.Add("for", expression);

            return(htmlHelper.Raw(label.ToString()));
            // /Solution (1)

            // Solution (2)
            //System.Web.Mvc.TagBuilder label =
            //	new System.Web.Mvc.TagBuilder("label");

            //label.SetInnerText(labelText);
            //label.Attributes.Add("for", expression);

            //System.Web.Mvc.TagBuilder div =
            //	new System.Web.Mvc.TagBuilder("div");

            //div.AddCssClass("caption");
            //div.InnerHtml = label.ToString();

            //return (htmlHelper.Raw(div.ToString()));
            // /Solution (2)

            // Solution (3)
            //string label =
            //	htmlHelper.Label(expression: expression, labelText: labelText)
            //	.ToHtmlString();

            //System.Web.Mvc.TagBuilder div =
            //	new System.Web.Mvc.TagBuilder("div");

            //div.InnerHtml = label;
            //div.AddCssClass("caption");

            //return (htmlHelper.Raw(div.ToString()));
            // /Solution (3)
        }
Ejemplo n.º 23
0
        public static string Label(string expression, string labelText)
        {
            // Solution (1)
            //string result =
            //	$"<label for='{ expression }'>{ labelText }</label>";

            //return (result);
            // /Solution (1)

            // Solution (2)
            //string result =
            //	$"<div class='caption'><label for='{ expression }'>{ labelText }</label></div>";

            //return (result);
            // /Solution (2)

            // Solution (3)
            //System.Web.Mvc.TagBuilder label =
            //	new System.Web.Mvc.TagBuilder("label");

            //label.SetInnerText(labelText);
            //label.Attributes.Add("for", expression);

            //return (label.ToString());
            // /Solution (3)

            // Solution (4)
            System.Web.Mvc.TagBuilder label =
                new System.Web.Mvc.TagBuilder("label");

            label.SetInnerText(labelText);
            label.Attributes.Add("for", expression);

            System.Web.Mvc.TagBuilder div =
                new System.Web.Mvc.TagBuilder("div");

            div.AddCssClass("caption");
            div.InnerHtml = label.ToString();

            return(div.ToString());
            // /Solution (4)
        }
Ejemplo n.º 24
0
        ///<summary>
        /// Displays a configurable "Go To Page:" form for instances of PagedList.
        ///</summary>
        ///<param name="html">This method is meant to hook off HtmlHelper as an extension method.</param>
        ///<param name="list">The PagedList to use as the data source.</param>
        ///<param name="formAction">The URL this form should submit the GET request to.</param>
        ///<param name="options">Formatting options.</param>
        ///<returns>Outputs the "Go To Page:" form HTML.</returns>
        public static HtmlString PagedListGoToPageForm(this IHtmlHelper html,
                                                       IPagedList list,
                                                       string formAction,
                                                       GoToFormRenderOptions options)
        {
            var form = new TagBuilder("form");

            form.AddCssClass("PagedList-goToPage");
            form.Attributes.Add("action", formAction);
            form.Attributes.Add("method", "get");

            var fieldset = new TagBuilder("fieldset");

            var label = new TagBuilder("label");

            label.Attributes.Add("for", options.InputFieldName);
            SetInnerText(label, options.LabelFormat);

            var input = new TagBuilder("input");

            input.Attributes.Add("type", options.InputFieldType);
            input.Attributes.Add("name", options.InputFieldName);
            input.Attributes.Add("value", list.PageNumber.ToString());

            var submit = new TagBuilder("input");

            submit.Attributes.Add("type", "submit");
            submit.Attributes.Add("value", options.SubmitButtonFormat);

            AppendHtml(fieldset, TagBuilderToString(label));

            AppendHtml(fieldset, TagBuilderToString(input, TagRenderMode.SelfClosing));

            AppendHtml(fieldset, TagBuilderToString(submit, TagRenderMode.SelfClosing));

            AppendHtml(form, TagBuilderToString(fieldset));
            return(new HtmlString(TagBuilderToString(form)));
        }
Ejemplo n.º 25
0
 protected override void BuildControl(System.Web.Mvc.TagBuilder builder, Products.CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext)
 {
     builder.MergeAttribute("data-toggle", "datepicker");
     base.BuildControl(builder, field, value, htmlAttributes, viewContext);
 }
Ejemplo n.º 26
0
        private void InitializeBeaconViewRendering()
        {
            BarcodeControllerName = Rendering.Parameters[MobileFieldNames.BarcodeControllerViewRenderingParameters.BarcodeControllerName];

            BarcodeControllerAction = Rendering.Parameters[MobileFieldNames.BarcodeControllerViewRenderingParameters.BarcodeControllerAction];

            var linkFieldNameParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.LinkFieldName] ?? null;
            var generalLinkParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink] ?? null;

            BarcodeFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.BarcodeFormat] ?? defaultBarcodeFormat;
            ImageFormatParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.ImageFormat] ?? defaultImageFormat;

            int w = defaultWidthPx;
            int h = defaultHeightPx;

            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.WidthPx], out w);
            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.HeightPx], out h);

            ZXing.BarcodeFormat barcodeFormat = ZXing.BarcodeFormat.QR_CODE;
            ImageFormat         imageFormat   = ImageFormat.Png;

            barcodeFormat = (ZXing.BarcodeFormat)Enum.Parse(typeof(ZXing.BarcodeFormat), BarcodeFormatParameter.Trim());

            switch (ImageFormatParameter.ToLower())
            {
            case "svg":
                break;

            case "bmp":
                imageFormat = ImageFormat.Bmp;
                break;

            case "emf":
                imageFormat = ImageFormat.Emf;
                break;

            case "gif":
                imageFormat = ImageFormat.Gif;
                break;

            case "icon":
                imageFormat = ImageFormat.Icon;
                break;

            case "jpeg":
            case "jpg":
                imageFormat = ImageFormat.Jpeg;
                break;

            case "png":
                imageFormat = ImageFormat.Png;
                break;

            case "tiff":
                imageFormat = ImageFormat.Tiff;
                break;

            case "wmf":
                imageFormat = ImageFormat.Wmf;
                break;

            default:
                throw new ArgumentException("Image format isn't supported", ImageFormatParameter.ToLower());
            }


            var buttonLink = (string)null;

            if (!string.IsNullOrEmpty(BarcodeControllerName) &&
                !string.IsNullOrEmpty(BarcodeControllerAction))
            {
                var r = new Sitecore.Mvc.Controllers.ControllerRunner(
                    BarcodeControllerName,
                    BarcodeControllerAction);
                buttonLink = r.Execute();

                // formFieldControllerValue = Html.Partial(Model.FormFieldValueControllerAction, Model.FormFieldValueControllerName);
            }

            if (string.IsNullOrEmpty(buttonLink))
            {
                buttonLink = string.Empty;
            }


            if (string.IsNullOrEmpty(buttonLink))
            {
                EmbeddedBarcodeImage = new HtmlString("Badge Error");
                SvgBarcodeImage      = new HtmlString("Badge Error");
                return;
            }

            BarcodeModel = new BarcodeModel(buttonLink, imageFormat, barcodeFormat, w, h);

            System.Web.Mvc.TagBuilder tagBuilder = new System.Web.Mvc.TagBuilder("img");
            // tagBuilder.MergeAttributes<string, object>(tagParameters);

            string base64ImageString = string.Concat("data:", GetMimeType(imageFormat), ";base64,", Convert.ToBase64String(BarcodeModel.BarcodeImageEncoded));

            tagBuilder.Attributes.Add(new KeyValuePair <string, string>("src", base64ImageString));

            EmbeddedBarcodeImage = new HtmlString(tagBuilder.ToString(System.Web.Mvc.TagRenderMode.SelfClosing));

            SvgBarcodeImage = new HtmlString(BarcodeModel.BarcodeImageSvg);
        }
Ejemplo n.º 27
0
        ///<summary>
        ///	Displays a configurable paging control for instances of PagedList.
        ///</summary>
        ///<param name = "html">This method is meant to hook off HtmlHelper as an extension method.</param>
        ///<param name = "list">The PagedList to use as the data source.</param>
        ///<param name = "generatePageUrl">A function that takes the page number  of the desired page and returns a URL-string that will load that page.</param>
        ///<param name = "options">Formatting options.</param>
        ///<returns>Outputs the paging control HTML.</returns>
        public static HtmlString PagedListPager(this IHtmlHelper html,
                                                IPagedList list,
                                                Func <int, string> generatePageUrl,
                                                PagedListRenderOptions options)
        {
            if (options.Display == PagedListDisplayMode.Never || (options.Display == PagedListDisplayMode.IfNeeded && list.PageCount <= 1))
            {
                return(null);
            }

            var listItemLinks = new List <TagBuilder>();

            //calculate start and end of range of page numbers
            var firstPageToDisplay   = 1;
            var lastPageToDisplay    = list.PageCount;
            var pageNumbersToDisplay = lastPageToDisplay;

            if (options.MaximumPageNumbersToDisplay.HasValue && list.PageCount > options.MaximumPageNumbersToDisplay)
            {
                // cannot fit all pages into pager
                var maxPageNumbersToDisplay = options.MaximumPageNumbersToDisplay.Value;
                firstPageToDisplay = list.PageNumber - maxPageNumbersToDisplay / 2;
                if (firstPageToDisplay < 1)
                {
                    firstPageToDisplay = 1;
                }
                pageNumbersToDisplay = maxPageNumbersToDisplay;
                lastPageToDisplay    = firstPageToDisplay + pageNumbersToDisplay - 1;
                if (lastPageToDisplay > list.PageCount)
                {
                    firstPageToDisplay = list.PageCount - maxPageNumbersToDisplay + 1;
                }
            }

            //first
            if (options.DisplayLinkToFirstPage == PagedListDisplayMode.Always || (options.DisplayLinkToFirstPage == PagedListDisplayMode.IfNeeded && firstPageToDisplay > 1))
            {
                listItemLinks.Add(First(list, generatePageUrl, options));
            }

            //previous
            if (options.DisplayLinkToPreviousPage == PagedListDisplayMode.Always || (options.DisplayLinkToPreviousPage == PagedListDisplayMode.IfNeeded && !list.IsFirstPage))
            {
                listItemLinks.Add(Previous(list, generatePageUrl, options));
            }

            //text
            if (options.DisplayPageCountAndCurrentLocation)
            {
                listItemLinks.Add(PageCountAndLocationText(list, options));
            }

            //text
            if (options.DisplayItemSliceAndTotal)
            {
                listItemLinks.Add(ItemSliceAndTotalText(list, options));
            }

            //page
            if (options.DisplayLinkToIndividualPages)
            {
                //if there are previous page numbers not displayed, show an ellipsis
                if (options.DisplayEllipsesWhenNotShowingAllPageNumbers && firstPageToDisplay > 1)
                {
                    listItemLinks.Add(Ellipses(options));
                }

                foreach (var i in Enumerable.Range(firstPageToDisplay, pageNumbersToDisplay))
                {
                    //show delimiter between page numbers
                    if (i > firstPageToDisplay && !string.IsNullOrWhiteSpace(options.DelimiterBetweenPageNumbers))
                    {
                        listItemLinks.Add(WrapInListItem(options.DelimiterBetweenPageNumbers));
                    }

                    //show page number link
                    listItemLinks.Add(Page(i, list, generatePageUrl, options));
                }

                //if there are subsequent page numbers not displayed, show an ellipsis
                if (options.DisplayEllipsesWhenNotShowingAllPageNumbers && (firstPageToDisplay + pageNumbersToDisplay - 1) < list.PageCount)
                {
                    listItemLinks.Add(Ellipses(options));
                }
            }

            //next
            if (options.DisplayLinkToNextPage == PagedListDisplayMode.Always || (options.DisplayLinkToNextPage == PagedListDisplayMode.IfNeeded && !list.IsLastPage))
            {
                listItemLinks.Add(Next(list, generatePageUrl, options));
            }

            //last
            if (options.DisplayLinkToLastPage == PagedListDisplayMode.Always || (options.DisplayLinkToLastPage == PagedListDisplayMode.IfNeeded && lastPageToDisplay < list.PageCount))
            {
                listItemLinks.Add(Last(list, generatePageUrl, options));
            }

            if (listItemLinks.Any())
            {
                //append class to first item in list?
                if (!string.IsNullOrWhiteSpace(options.ClassToApplyToFirstListItemInPager))
                {
                    listItemLinks.First().AddCssClass(options.ClassToApplyToFirstListItemInPager);
                }

                //append class to last item in list?
                if (!string.IsNullOrWhiteSpace(options.ClassToApplyToLastListItemInPager))
                {
                    listItemLinks.Last().AddCssClass(options.ClassToApplyToLastListItemInPager);
                }

                //append classes to all list item links
                foreach (var li in listItemLinks)
                {
                    foreach (var c in options.LiElementClasses ?? Enumerable.Empty <string>())
                    {
                        li.AddCssClass(c);
                    }
                }
            }

            //collapse all of the list items into one big string
            var listItemLinksString = listItemLinks.Aggregate(
                new StringBuilder(),
                (sb, listItem) => sb.Append(TagBuilderToString(listItem)),
                sb => sb.ToString()
                );

            var ul = new TagBuilder("ul");

            AppendHtml(ul, listItemLinksString);
            foreach (var c in options.UlElementClasses ?? Enumerable.Empty <string>())
            {
                ul.AddCssClass(c);
            }

            var outerDiv = new TagBuilder("div");

            foreach (var c in options.ContainerDivClasses ?? Enumerable.Empty <string>())
            {
                outerDiv.AddCssClass(c);
            }
            AppendHtml(outerDiv, TagBuilderToString(ul));

            return(new HtmlString(TagBuilderToString(outerDiv)));
        }
Ejemplo n.º 28
0
 public TagBuilder(string tagName)
 {
     _tagBuilder = new System.Web.Mvc.TagBuilder(tagName);
     Attributes  = _tagBuilder.Attributes;
 }
Ejemplo n.º 29
0
        private void InitializeBeaconViewRendering()
        {
            DisplayItem = Rendering.Item;

            var linkFieldNameParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.LinkFieldName] ?? null;
            var generalLinkParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink] ?? null;

            BarcodeFormatParameter = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.BarcodeFormat] ?? defaultBarcodeFormat;
            ImageFormatParameter   = Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.ImageFormat] ?? defaultImageFormat;

            int w = defaultWidthPx;
            int h = defaultHeightPx;

            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.WidthPx], out w);
            int.TryParse(Rendering.Parameters[MobileFieldNames.BarcodeViewRenderingParameters.HeightPx], out h);

            ZXing.BarcodeFormat barcodeFormat = ZXing.BarcodeFormat.QR_CODE;
            ImageFormat         imageFormat   = ImageFormat.Png;

            barcodeFormat = (ZXing.BarcodeFormat)Enum.Parse(typeof(ZXing.BarcodeFormat), BarcodeFormatParameter.Trim());

            switch (ImageFormatParameter.ToLower())
            {
            case "bmp":
                imageFormat = ImageFormat.Bmp;
                break;

            case "emf":
                imageFormat = ImageFormat.Emf;
                break;

            case "gif":
                imageFormat = ImageFormat.Gif;
                break;

            case "icon":
                imageFormat = ImageFormat.Icon;
                break;

            case "jpeg":
            case "jpg":
                imageFormat = ImageFormat.Jpeg;
                break;

            case "png":
                imageFormat = ImageFormat.Png;
                break;

            case "tiff":
                imageFormat = ImageFormat.Tiff;
                break;

            case "wmf":
                imageFormat = ImageFormat.Wmf;
                break;

            case "svg":
                break;

            default:
                throw new ArgumentException("Image format isn't supported", ImageFormatParameter.ToLower());
            }


            var buttonText   = (string)null;
            var buttonLink   = (string)null;
            var buttonTarget = (string)null;


            if (!string.IsNullOrEmpty(generalLinkParameter))
            {
                var generalLinkXml = HttpUtility.HtmlDecode(generalLinkParameter);

                var renderingParameterTemplateField       = Rendering.RenderingItem.InnerItem.Fields[MobileFieldNames.ViewRenderingFields.ParametersTemplate];
                var renderingParameterTemplateLookupField = new Sitecore.Data.Fields.LookupField(renderingParameterTemplateField);
                var renderingParameterTemplateItem        = new Sitecore.Data.Items.TemplateItem(renderingParameterTemplateLookupField.TargetItem);

                var standardValuesGeneralLinkField = renderingParameterTemplateItem.StandardValues.Fields[MobileFieldNames.BarcodeViewRenderingParameters.GeneralLink];

                var generalLinkField = new Sitecore.Data.Fields.LinkField(standardValuesGeneralLinkField, generalLinkXml);

                buttonText   = generalLinkField.Text;
                buttonTarget = !string.IsNullOrEmpty(generalLinkField.Target) ? generalLinkField.Target : null;

                if (!string.IsNullOrEmpty(generalLinkField.Anchor))
                {
                    buttonLink = string.Format("#{0}", generalLinkField.Anchor);
                }
                else
                {
                    buttonLink = generalLinkField.Url;
                }
            }

            if (string.IsNullOrEmpty(buttonLink) && !string.IsNullOrEmpty(linkFieldNameParameter) && DisplayItem != null)
            {
                var itemField = DisplayItem.Fields[linkFieldNameParameter];
                if (itemField == null)
                {
                    return;
                }

                var fieldItem = DisplayItem.Database.GetItem(itemField.ID);
                if (fieldItem == null)
                {
                    return;
                }

                var linkField = new Sitecore.Data.Fields.LinkField(itemField);
                if (linkField.TargetItem == null)
                {
                    EmbeddedBarcodeImage = new HtmlString("Undefined barcode link field target item");
                    SvgBarcodeImage      = new HtmlString("Undefined barcode link field target item");
                    return;
                }

                buttonLink = DisplayItem.GetRoutePathInfo(
                    new Sitecore.Links.UrlOptions()
                {
                    AlwaysIncludeServerUrl = true
                });
            }

            if (string.IsNullOrEmpty(buttonLink) && DisplayItem != null)
            {
                buttonLink = DisplayItem.GetRoutePathInfo(
                    new Sitecore.Links.UrlOptions()
                {
                    AlwaysIncludeServerUrl = true
                });
            }


            if (string.IsNullOrEmpty(buttonLink))
            {
                EmbeddedBarcodeImage = new HtmlString("Missing barcode link");
                SvgBarcodeImage      = new HtmlString("Missing barcode link");
                return;
            }

            BarcodeModel = new BarcodeModel(buttonLink, imageFormat, barcodeFormat, w, h);

            System.Web.Mvc.TagBuilder tagBuilder = new System.Web.Mvc.TagBuilder("img");
            // tagBuilder.MergeAttributes<string, object>(tagParameters);

            string base64ImageString = string.Concat("data:", GetMimeType(imageFormat), ";base64,", Convert.ToBase64String(BarcodeModel.BarcodeImageEncoded));

            tagBuilder.Attributes.Add(new KeyValuePair <string, string>("src", base64ImageString));

            EmbeddedBarcodeImage = new HtmlString(tagBuilder.ToString());

            SvgBarcodeImage = new HtmlString(BarcodeModel.BarcodeImageSvg);
        }
Ejemplo n.º 30
0
 protected override void BuildControl(System.Web.Mvc.TagBuilder builder, CustomFieldDefinition field, string value, object htmlAttributes, System.Web.Mvc.ViewContext viewContext)
 {
     base.BuildControl(builder, field, value, htmlAttributes, viewContext);
     builder.InnerHtml = value;
 }