Exemple #1
0
        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());
                }
            }
        }