예제 #1
0
        public static List <Template> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo,
                                              string searchMessage)
        {
            var efHelper = new EFHelper(dataBaseContext);

            IQueryable <Template> q = dataBaseContext.Templates;

            // 表单搜索
            var searchText = searchMessage?.Trim();

            if (!string.IsNullOrEmpty(searchText))
            {
                q = q.Where(o => o.Name.Contains(searchText));
            }

            if (pageInfo == null)
            {
                return(q.ToList());
            }
            // 在添加条件之后,排序和分页之前获取总记录数
            pageInfo.RecordCount = q.Count();

            // 排列和数据库分页
            q = efHelper.SortAndPage(q, pageInfo);

            return(q.ToList());
        }
예제 #2
0
        private static void CreatePageLink(int i, PageInfoViewModel pageInfoViewModel, ref Func <int, string, string> pageUrl, ref StringBuilder result, string buttonType)
        {
            TagBuilder tag = new TagBuilder("a");

            tag.MergeAttribute("data-ajax", "true");
            tag.MergeAttribute("href", pageUrl(i, pageInfoViewModel.SearchItem));
            tag.MergeAttribute("data-ajax-mode", "replace");
            tag.MergeAttribute("data-ajax-update", "#results");
            if (buttonType == "default")
            {
                tag.SetInnerText(i.ToString());
                tag.AddCssClass("btn btn-default");
            }

            if (buttonType == "info")
            {
                tag.InnerHtml = i.ToString();
                tag.AddCssClass("btn btn-info");
                tag.AddCssClass("selected");
            }
            if (buttonType == "primary")
            {
                if (i == 1)
                {
                    tag.InnerHtml = "<<";
                }
                else
                {
                    tag.InnerHtml = ">>";
                }
                tag.AddCssClass("btn btn-primary");
            }
            result.Append(tag);
        }
예제 #3
0
        public static MvcHtmlString PageLinks(this HtmlHelper html,
                                              PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();

            if (pageInfoViewModel.PageNumber > 2)
            {
                CreatePageLink(pageInfoViewModel.PageNumber - 2, pageInfoViewModel, ref pageUrl, ref result, "default");
            }
            if (pageInfoViewModel.PageNumber != 1)
            {
                CreatePageLink(pageInfoViewModel.PageNumber - 1, pageInfoViewModel, ref pageUrl, ref result, "default");
            }

            CreatePageLink(pageInfoViewModel.PageNumber, pageInfoViewModel, ref pageUrl, ref result, "info");

            if (pageInfoViewModel.PageNumber != pageInfoViewModel.TotalPages)
            {
                CreatePageLink(pageInfoViewModel.PageNumber + 1, pageInfoViewModel, ref pageUrl, ref result, "default");
            }
            if (pageInfoViewModel.PageNumber < pageInfoViewModel.TotalPages - 1)
            {
                CreatePageLink(pageInfoViewModel.PageNumber + 2, pageInfoViewModel, ref pageUrl, ref result, "default");
            }

            return(MvcHtmlString.Create(result.ToString()));
        }
예제 #4
0
        public static MvcHtmlString PagedListPager(this HtmlHelper html, PageInfoViewModel pageInfo)
        {
            StringBuilder result = new StringBuilder();
            TagBuilder    div    = new TagBuilder("div");

            div.MergeAttribute("id", "contentPager");
            div.AddCssClass("nav-pages");
            int p = 1;

            if (pageInfo.PageNumber >= 5)
            {
                TagBuilder tag = new TagBuilder("button");
                tag.SetInnerText("1");
                tag.MergeAttribute("onclick", "submitFormByPage" + "(" + 1 + ")");
                div.InnerHtml += tag;
                TagBuilder span = new TagBuilder("span");
                span.AddCssClass(" mr-2");
                span.InnerHtml = ("...");
                div.InnerHtml += span;
                p = pageInfo.PageNumber - 3;
            }
            int  to      = pageInfo.TotalPages;
            bool lastBtn = false;

            if ((pageInfo.TotalPages - pageInfo.PageNumber) >= 4)
            {
                lastBtn = true;
                to      = pageInfo.PageNumber + 3;
            }
            for (int i = p; i <= to; i++)
            {
                TagBuilder tag = new TagBuilder("button");

                tag.SetInnerText(i.ToString());
                if (i == pageInfo.PageNumber)
                {
                    tag.AddCssClass("active");
                }
                else
                {
                    tag.MergeAttribute("onclick", "submitFormByPage" + "(" + i + ")");
                }

                div.InnerHtml += tag;
            }
            if (lastBtn)
            {
                TagBuilder tag = new TagBuilder("button");
                tag.SetInnerText(pageInfo.TotalPages.ToString());
                tag.MergeAttribute("onclick", "submitFormByPage" + "(" + pageInfo.TotalPages + ")");
                TagBuilder span = new TagBuilder("span");
                span.AddCssClass(" mr-2");
                span.InnerHtml = ("...");
                div.InnerHtml += span;
                div.InnerHtml += tag;
            }
            result.Append(div.ToString());
            return(MvcHtmlString.Create(result.ToString()));
        }
예제 #5
0
        public static MvcHtmlString PageEndLink(this HtmlHelper html,
                                                PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();

            CreatePageLink(pageInfoViewModel.TotalPages, pageInfoViewModel, ref pageUrl, ref result, "primary");

            return(MvcHtmlString.Create(result.ToString()));
        }
예제 #6
0
        public static List <Article> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo,
                                             string searchMessage, Guid?articleTypeGuid = null, Guid?articleLabelGuid = null,
                                             bool getArticleType = true, bool getArticleLabels = true, bool getText = true)
        {
            var efHelper = new EFHelper(dataBaseContext);

            IQueryable <Article> q;

            if (articleLabelGuid.HasValue)
            {
                q = dataBaseContext.ArticleLabelArticles.Where(
                    o => o.ArticleLabelGuid == articleLabelGuid).Select(o => o.Article);
            }
            else
            {
                q = dataBaseContext.Articles;
            }

            IQueryable <ArticleLabelArticle> m = dataBaseContext.ArticleLabelArticles;

            m = m.Include(o => o.Article)
                .Include(o => o.ArticleLabel);

            q = q.Include(o => o.ArticleType);

            if (articleTypeGuid.HasValue)
            {
                var selectedArticleTypeGuids = ArticleType.GetVirtualTree(dataBaseContext, articleTypeGuid.Value);
                q = q.Join(selectedArticleTypeGuids, l => l.ArticleType, r => r, (l, r) => l);
            }

            // 表单搜索
            var searchText = searchMessage?.Trim();

            if (!string.IsNullOrEmpty(searchText))
            {
                q = q.Where(o => o.Name.Contains(searchText));
            }

            if (pageInfo != null)
            {
                // 在添加条件之后,排序和分页之前获取总记录数
                pageInfo.RecordCount = q.Count();

                // 排列和数据库分页
                q = efHelper.SortAndPage(q, pageInfo);
            }

            var articles = q.ToList();

            articles.ForEach(o => o.ArticleLabelArticles = m.Where(p => p.Article == o).ToList());

            return(articles);
        }
예제 #7
0
        public static MvcHtmlString FewPageLinks(this HtmlHelper html,
                                                 PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();

            for (int i = 1; i <= pageInfoViewModel.TotalPages; i++)
            {
                if (i == pageInfoViewModel.PageNumber)
                {
                    CreatePageLink(i, pageInfoViewModel, ref pageUrl, ref result, "info");
                }
                else
                {
                    CreatePageLink(i, pageInfoViewModel, ref pageUrl, ref result, "default");
                }
            }

            return(MvcHtmlString.Create(result.ToString()));
        }
예제 #8
0
        public static MvcHtmlString PageLinks(this HtmlHelper html, PageInfoViewModel pageInfo, Func <int, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();

            for (int i = 1; i <= pageInfo.TotalPages; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(i));
                tag.InnerHtml = i.ToString();

                if (i == pageInfo.PageNumber)
                {
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                result.Append(tag.ToString());
            }
            return(MvcHtmlString.Create(result.ToString()));
        }
예제 #9
0
        public async Task <ServicesListViewModel> GetListAsync(ServicesSearchModel searchModel)
        {
            var pageInfo = new PageInfoViewModel();

            pageInfo.PageNumber = searchModel.Page;
            pageInfo.PageSize   = searchModel.ItemsPerPage;

            var getServices = context.Services.Where(x => x.IsApproved == searchModel.IsApproved);

            if (!String.IsNullOrWhiteSpace(searchModel.Search))
            {
                getServices = getServices.Where(x => x.Name.Contains(searchModel.Search));
            }
            if (searchModel.CategoryId != null)
            {
                getServices = getServices.Where(x => x.CategoryId == searchModel.CategoryId);
            }
            if (searchModel.SortAscending == true)
            {
                getServices = getServices.OrderBy(x => x.Name);
            }
            else
            {
                getServices = getServices.OrderByDescending(x => x.Name);
            }

            pageInfo.TotalItems = await getServices.CountAsync();

            var dataModel = await getServices
                            .Skip(pageInfo.SkipItems)
                            .Take(pageInfo.PageSize)
                            .Include(x => x.Category)
                            .ToListAsync();

            var viewModel = new ServicesListViewModel();

            viewModel.Services = _mapper.Map <List <ServiceViewModel> >(dataModel);
            viewModel.PageInfo = pageInfo;
            return(viewModel);
        }
예제 #10
0
        public ActionResult Display(int page = 1)
        {
            int pageSize = 15;
            IEnumerable <DrugUnitDTO> drugUnitsDto = drugUnitService.GetDrugUnits((page - 1) * pageSize, pageSize);
            PageInfoViewModel         pageInfo     = new PageInfoViewModel
            {
                PageNumber = page,
                PageSize   = pageSize,
                TotalItems = drugUnitService.GetDrugUnitsCount()
            };

            Mapper.Initialize(cfg => cfg.CreateMap <DrugUnitDTO, DrugUnitViewModel>());
            var drugUnits = Mapper.Map <IEnumerable <DrugUnitDTO>, List <DrugUnitViewModel> >(drugUnitsDto);
            DrugUnitIndexViewModel drugUnitsIndex = new DrugUnitIndexViewModel
            {
                PageInfo   = pageInfo,
                DrugUnits  = drugUnits,
                DepotsList = drugUnitService.GetDepotsList()
            };

            return(View(drugUnitsIndex));
        }
예제 #11
0
        public static List <ArticleType> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo,
                                                 string searchMessage, out List <ArticleType> articleTypes)
        {
            articleTypes = GetVirtualTree(dataBaseContext);

            // 表单搜索
            var searchText         = searchMessage?.Trim();
            var searchArticleTypes = !string.IsNullOrEmpty(searchText)
                ? articleTypes.Where(o => o.Name.Contains(searchText)).ToList()
                : articleTypes;

            if (pageInfo == null)
            {
                return(searchArticleTypes);
            }
            // 在添加条件之后,排序和分页之前获取总记录数
            pageInfo.RecordCount = searchArticleTypes.Count();

            // 排列和分页
            searchArticleTypes = searchArticleTypes.Skip(pageInfo.PageIndex * pageInfo.PageSize)
                                 .Take(pageInfo.PageSize).ToList();

            return(searchArticleTypes);
        }
예제 #12
0
        public static MvcHtmlString PagedListPager(this HtmlHelper html,
                                                   PageInfoViewModel pageInfo, string jsFunctionName)
        {
            StringBuilder result = new StringBuilder();
            TagBuilder    div    = new TagBuilder("div");

            div.MergeAttribute("id", "contentPager");
            div.AddCssClass("page-container");
            int p = 1;

            if (pageInfo.PageNumber >= 5)
            {
                TagBuilder tag = new TagBuilder("input");
                tag.MergeAttribute("value", "1");
                tag.MergeAttribute("type", "button");
                tag.AddCssClass("btn");
                tag.AddCssClass("btn-default");
                tag.MergeAttribute("onclick", jsFunctionName + "(" + 1 + ")");
                div.InnerHtml += tag;
                TagBuilder span = new TagBuilder("span");
                span.AddCssClass(" mr-2");
                span.InnerHtml = ("...");
                div.InnerHtml += span;
                p = pageInfo.PageNumber - 3;
            }
            int  to      = pageInfo.TotalPages;
            bool lastBtn = false;

            if ((pageInfo.TotalPages - pageInfo.PageNumber) >= 4)
            {
                lastBtn = true;
                to      = pageInfo.PageNumber + 3;
            }
            for (int i = p; i <= to; i++)
            {
                TagBuilder tag = new TagBuilder("input");
                tag.MergeAttribute("type", "button");
                tag.MergeAttribute("value", i.ToString());
                tag.AddCssClass("btn");
                if (i == pageInfo.PageNumber)
                {
                    tag.AddCssClass("btn-currentpage");
                }
                else
                {
                    tag.AddCssClass("btn-default");
                    tag.MergeAttribute("onclick", jsFunctionName + "(" + i + ")");
                }

                div.InnerHtml += tag;
            }
            if (lastBtn)
            {
                TagBuilder tag = new TagBuilder("input");
                tag.MergeAttribute("value", pageInfo.TotalPages.ToString());
                tag.MergeAttribute("type", "button");
                tag.AddCssClass("btn");
                tag.AddCssClass("btn-default");
                tag.MergeAttribute("onclick", jsFunctionName + "(" + pageInfo.TotalPages + ")");
                TagBuilder span = new TagBuilder("span");
                span.AddCssClass(" mr-2");
                span.InnerHtml = ("...");
                div.InnerHtml += span;
                div.InnerHtml += tag;
            }
            result.Append(div.ToString());
            return(MvcHtmlString.Create(result.ToString()));
        }