public virtual IActionResult OfficialFeedSelect(DataSourceRequest command, OfficialFeedListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedKendoGridJson()); } var plugins = _officialFeedManager.GetAllPlugins(categoryId: model.SearchCategoryId, versionId: model.SearchVersionId, price: model.SearchPriceId, searchTerm: model.SearchName, pageIndex: command.Page - 1, pageSize: command.PageSize); var gridModel = new DataSourceResult { Data = plugins.Select(x => new OfficialFeedListModel.ItemOverview { Url = x.Url, Name = x.Name, CategoryName = x.Category, SupportedVersions = x.SupportedVersions, PictureUrl = x.PictureUrl, Price = x.Price }), Total = plugins.TotalCount }; return(Json(gridModel)); }
public ActionResult OfficialFeedSelect(DataSourceRequest command, OfficialFeedListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var plugins = _officialFeedManager.GetAllPlugins(model.SearchCategoryId, model.SearchVersionId, model.SearchPriceId, model.SearchName, command.Page - 1, command.PageSize); var gridModel = new DataSourceResult(); gridModel.Data = plugins.Select(x => new OfficialFeedListModel.ItemOverview { Url = x.Url, Name = x.Name, CategoryName = x.Category, SupportedVersions = x.SupportedVersions, PictureUrl = x.PictureUrl, Price = x.Price }); gridModel.Total = plugins.TotalCount; return(Json(gridModel)); }
//official feed public virtual IActionResult OfficialFeed() { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var model = new OfficialFeedListModel(); //versions model.AvailableVersions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var version in _officialFeedManager.GetVersions()) { model.AvailableVersions.Add(new SelectListItem { Text = version.Name, Value = version.Id.ToString() }); } //pre-select current version //current version name and named on official site do not match. that's why we use "Contains" var currentVersionItem = model.AvailableVersions.FirstOrDefault(x => x.Text.Contains(NopVersion.CurrentVersion)); if (currentVersionItem != null) { model.SearchVersionId = int.Parse(currentVersionItem.Value); currentVersionItem.Selected = true; } //categories var categories = _officialFeedManager.GetCategories(); model.AvailableCategories.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var category in categories) { model.AvailableCategories.Add(new SelectListItem { Text = GetCategoryBreadCrumbName(category, categories), Value = category.Id.ToString() }); } //prices model.AvailablePrices.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); model.AvailablePrices.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Configuration.Plugins.OfficialFeed.Price.Free"), Value = "10" }); model.AvailablePrices.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Configuration.Plugins.OfficialFeed.Price.Commercial"), Value = "20" }); return(View(model)); }