public JsonResult GetCultureByCountry(int countryId) { var model = new FaqEntriesIndexViewModel(); model.Cultures = _countryCulturesProvider.GetCountryCultures(countryId); return(Json(model, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(PagerParameters pagerParameters, FaqEntriesIndexViewModel indexModel) { var cultureData = _countryCulturesProvider.GetData(indexModel.CountryId, indexModel.CultureId); FaqEntrySearchViewModel search = indexModel.Search; var sections = _faqService.GetFaqSections(cultureData.Culture); var faqQuery = _faqService.GetFaqEntries(cultureData.Culture, search.SectionId).Join <BodyPartRecord>().List().Where(fe => fe.Language == cultureData.Culture); if (!string.IsNullOrWhiteSpace(search.SearchString)) { var searchString = search.SearchString.Trim(); faqQuery = faqQuery.Where(f => f.Question.Contains(searchString) || f.Body.Text.Contains(searchString)); } var entriesProjection = faqQuery.Select(e => { return(Shape.FaqEntry( Id: e.Id, Question: e.Question, Text: e.Body.Text )); }); var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters.Page, pagerParameters.PageSize); var entries = entriesProjection.Skip(pager.GetStartIndex()).Take(pager.PageSize); var pagerShape = Shape.Pager(pager).TotalItemCount(faqQuery.Count()); var model = new FaqEntriesIndexViewModel(entries, sections, search, pagerShape); model.CountryId = cultureData.CountryId; model.CultureId = cultureData.CultureId; model.Countries = cultureData.Countries; model.Cultures = cultureData.Cultures; model.Culture = cultureData.Culture; return(View(model)); }