protected async System.Threading.Tasks.Task <IActionResult> Page(string seoName, string keyword = null) { // Home Page int maxPageSize = MixService.GetAppSetting <int>("MaxPageSize"); string orderBy = MixService.GetAppSetting <string>("OrderBy"); int orderDirection = MixService.GetAppSetting <int>("OrderDirection"); int.TryParse(Request.Query["page"], out int page); int.TryParse(Request.Query["pageSize"], out int pageSize); ViewData["keyword"] = keyword; RepositoryResponse <Lib.ViewModels.MixPages.ReadMvcViewModel> getPage = null; Expression <Func <MixPage, bool> > predicate; if (string.IsNullOrEmpty(seoName)) { predicate = p => p.Type == MixPageType.Home && p.Status == MixContentStatus.Published && p.Specificulture == culture; } else { predicate = p => p.SeoName == seoName && p.Status == MixContentStatus.Published && p.Specificulture == culture; } getPage = await Lib.ViewModels.MixPages.ReadMvcViewModel.Repository.GetFirstModelAsync(predicate); if (getPage.IsSucceed) { if (getPage.Data != null) { maxPageSize = getPage.Data.PageSize.HasValue ? getPage.Data.PageSize.Value : maxPageSize; pageSize = (pageSize > 0 && pageSize < maxPageSize) ? pageSize : maxPageSize; getPage.Data.LoadData(pageSize: pageSize, pageIndex: page - 1); } GeneratePageDetailsUrls(getPage.Data); } if (getPage.IsSucceed) { ViewData["Title"] = getPage.Data.SeoTitle; ViewData["Name"] = getPage.Data.SeoName; ViewData["Description"] = getPage.Data.SeoDescription; ViewData["Keywords"] = getPage.Data.SeoKeywords; ViewData["Image"] = getPage.Data.ImageUrl; ViewData["BodyClass"] = getPage.Data.CssClass; ViewData["ViewMode"] = MixMvcViewMode.Page; ViewData["Keyword"] = keyword; getPage.LastUpdateConfiguration = MixService.GetAppSetting <DateTime?>("LastUpdateConfiguration"); return(View(getPage.Data)); } else { if (seoName != "404") { return(Redirect($"/{culture}/404")); } else { return(NotFound()); } } }