网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using Microsoft.AspNetCore.Routing;
using System.Collections.Generic;

namespace Dpz.Core.Web.Pager
{
    /// <summary>
    /// 表示用于构建PagerOptions对象的辅助对象。
    /// </summary>
    public class PagerOptionsBuilder
    {
        private readonly PagerOptions _pagerOptions;
        
        public PagerOptionsBuilder(PagerOptions pagerOptions)
        {
            _pagerOptions = pagerOptions;
        }

        /// <summary>
        /// 设置 PagerOptions 的 Action 属性
        /// </summary>
        /// <param name="actionName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetAction(string actionName)
        {
            _pagerOptions.Action = actionName;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 Controller 属性
        /// </summary>
        /// <param name="controllerName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetController(string controllerName)
        {
            _pagerOptions.Controller = controllerName;
            return this;
        }


        /// <summary>
        /// 设置 PagerOptions 的 Area 属性
        /// </summary>
        /// <param name="areaName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetArea(string areaName)
        {
            _pagerOptions.Area = areaName;
            return this;
        }

        /// <summary>
        /// 向 PagerOptions 的 HtmlAttributes 属性添加项。
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public PagerOptionsBuilder AddHtmlAttribute(string key, object value)
        {
            if (_pagerOptions.HtmlAttributes == null)
            {
                _pagerOptions.HtmlAttributes=new Dictionary<string, object>();
            }
            _pagerOptions.HtmlAttributes[key] = value;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 OnPageIndexError 属性
        /// </summary>
        /// <param name="handler"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetOnPageIndexError(string handler)
        {
            _pagerOptions.OnPageIndexError = handler;
            return this;
        }

        /// <summary>
        /// 向 PagerOptions 的 RouteValues 属性添加项
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public PagerOptionsBuilder AddRouteValue(string key, object value)
        {
            if (_pagerOptions.RouteValues == null)
            {
                _pagerOptions.RouteValues=new RouteValueDictionary();
            }
            _pagerOptions.RouteValues[key] = value;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 Route 属性
        /// </summary>
        /// <param name="routeName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetRoute(string routeName)
        {
            _pagerOptions.Route = routeName;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 FirstPageRoute 属性
        /// </summary>
        /// <param name="routeName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetFirstPageRoute(string routeName)
        {
            _pagerOptions.FirstPageRoute = routeName;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 AutoHide 属性值为false
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder DisableAutoHide()
        {
            _pagerOptions.AutoHide = false;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PageIndexOutOfRangeErrorMessage 属性
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPageIndexOutOfRangeErrorMessage(string msg)
        {
            _pagerOptions.PageIndexOutOfRangeErrorMessage = msg;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 HorizontalAlign 属性
        /// </summary>
        /// <param name="alignment"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetHorizontalAlign(string alignment)
        {
            _pagerOptions.HorizontalAlign = alignment;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 InvalidPageIndexErrorMessage 属性
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetInvalidPageIndexErrorMessage(string msg)
        {
            _pagerOptions.InvalidPageIndexErrorMessage = msg;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PageIndexParameterName 属性
        /// </summary>
        /// <param name="prmName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPageIndexParameterName(string prmName)
        {
            _pagerOptions.PageIndexParameterName = prmName;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PageIndexBoxId 属性
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPageIndexBoxId(string id)
        {
            _pagerOptions.PageIndexBoxId = id;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 MaximumPageIndexItems 属性
        /// </summary>
        /// <param name="itmes"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetMaximumPageIndexItems(int itmes)
        {
            _pagerOptions.MaximumPageIndexItems = itmes;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 GoToButtonId 属性
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetGoToButtonId(string id)
        {
            _pagerOptions.GoToButtonId = id;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PageNumberFormatString 属性
        /// </summary>
        /// <param name="format"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPageNumberFormatString(string format)
        {
            _pagerOptions.PageNumberFormatString = format;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 CurrentPageNumberFormatString 属性
        /// </summary>
        /// <param name="format"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetCurrentPageNumberFormatString(string format)
        {
            _pagerOptions.CurrentPageNumberFormatString = format;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 TagName 属性
        /// </summary>
        /// <param name="tagName"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetTagName(string tagName)
        {
            _pagerOptions.TagName = tagName;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PagerItemTemplate 属性
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPagerItemTemplate(string template)
        {
            _pagerOptions.PagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 NumericPagerItemTemplate 属性
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetNumericPagerItemTemplate(string template)
        {
            _pagerOptions.NumericPagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// SetCurrentPagerItemTemplate
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetCurrentPagerItemTemplate(string template)
        {
            _pagerOptions.CurrentPagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 NavigationPagerItemTemplate 属性
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetNavigationPagerItemTemplate(string template)
        {
            _pagerOptions.NavigationPagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 MorePagerItemTemplate 属性
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetMorePagerItemTemplate(string template)
        {
            _pagerOptions.MorePagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 DisabledPagerItemTemplate 属性
        /// </summary>
        /// <param name="template"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetDisabledPagerItemTemplate(string template)
        {
            _pagerOptions.DisabledPagerItemTemplate = template;
            return this;
        }

        /// <summary>
        /// 是否总是显示第一页和最后一页两个数字页索引按钮
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder AlwaysShowFirstLastPageNumber()
        {
            _pagerOptions.AlwaysShowFirstLastPageNumber = true;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.NumericPagerItemCount"/> 属性
        /// </summary>
        /// <param name="itemCount"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetNumericPagerItemCount(int itemCount)
        {
            _pagerOptions.NumericPagerItemCount = itemCount;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.ShowPrevNext"/> 为 <value>false</value>
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder HidePrevNext()
        {
            _pagerOptions.ShowPrevNext = false;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.PrevPageText"/> 属性
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPrevPageText(string text)
        {
            _pagerOptions.PrevPageText = text;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.NextPageText"/> 属性
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetNextPageText(string text)
        {
            _pagerOptions.NextPageText = text;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.ShowNumericPagerItems"/> 属性
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder HideNumericPagerItems()
        {
            _pagerOptions.ShowNumericPagerItems = false;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.ShowFirstLast"/> 为 <value>false</value>
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder HideFirstLast()
        {
            _pagerOptions.ShowFirstLast = false;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.FirstPageText"/> 属性
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetFirstPageText(string text)
        {
            _pagerOptions.FirstPageText = text;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.LastPageText"/> 属性
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetLastPageText(string text)
        {
            _pagerOptions.LastPageText = text;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.ShowMorePagerItems"/> 属性
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder HideMorePagerItems()
        {
            _pagerOptions.ShowMorePagerItems = false;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.MorePageText"/> 属性
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetMorePageText(string text)
        {
            _pagerOptions.MorePageText = text;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.Id"/> 属性
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetId(string id)
        {
            _pagerOptions.Id = id;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.CssClass"/> 属性
        /// </summary>
        /// <param name="cssClass"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetCssClass(string cssClass)
        {
            _pagerOptions.CssClass = cssClass;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.ShowDisabledPagerItems"/> 为 <value>false</value>
        /// </summary>
        /// <returns></returns>
        public PagerOptionsBuilder HideDisabledPagerItems()
        {
            _pagerOptions.ShowDisabledPagerItems = false;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.MaximumPageNumber"/> 属性
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetMaximumPageNumber(int number)
        {
            _pagerOptions.MaximumPageNumber = number;
            return this;
        }

        /// <summary>
        /// 设置 <see cref="PagerOptions.NavigationPagerItemsPosition"/> 属性
        /// </summary>
        /// <param name="position"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetNavigationPagerItemsPosition(PagerItemsPosition position)
        {
            _pagerOptions.NavigationPagerItemsPosition = position;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 PagerItemCssClass 属性
        /// </summary>
        /// <param name="cssClass">要应用的css类名</param>
        /// <returns></returns>
        public PagerOptionsBuilder SetPagerItemCssClass(string cssClass)
        {
            _pagerOptions.PagerItemCssClass = cssClass;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 RouteValues 属性
        /// </summary>
        /// <param name="values"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetRouteValues(RouteValueDictionary values)
        {
            _pagerOptions.RouteValues = values;
            return this;
        }

        /// <summary>
        /// 设置 PagerOptions 的 HtmlAttributes 属性
        /// </summary>
        /// <param name="attributes"></param>
        /// <returns></returns>
        public PagerOptionsBuilder SetHtmlAttributes(IDictionary<string, object> attributes)
        {
            _pagerOptions.HtmlAttributes = attributes;
            return this;
        }
    }
}
loading