private List <LookupKeyValue> Categories(CategorySuggestionViewModel model) { var query = Repository.AsQueryable <Models.Category>().Where(c => !c.CategoryTree.IsDeleted && !c.IsDeleted); if (!string.IsNullOrEmpty(model.CategoryTreeForKey)) { query = query.Where(c => c.CategoryTree.AvailableFor.Any(e => e.CategorizableItem.Name == model.CategoryTreeForKey)); } var allCategories = query.ToList(); var treeLikePlainList = new List <LookupKeyValue>(); ConstructTreeLike( treeLikePlainList, string.Empty, allCategories.Where(c => c.ParentCategory == null).OrderBy(c => c.DisplayOrder).ToList(), allCategories, model.Query); return(treeLikePlainList); }
/// <summary> /// Executes this command. /// </summary> /// <param name="model">The model.</param> /// <returns> /// A list of tags. /// </returns> public List <LookupKeyValue> Execute(CategorySuggestionViewModel model) { // TODO: #1210 // return Categories(model); var query = Repository.AsQueryable <Models.Category>() .Where(category => category.Name.Contains(model.Query)); if (model.ExistingItemsArray.Length > 0) { query = query.Where(category => !model.ExistingItems.Contains(category.Id.ToString().ToUpper())); } if (!string.IsNullOrEmpty(model.CategoryTreeForKey)) { query = query.Where(c => !c.CategoryTree.IsDeleted && c.CategoryTree.AvailableFor.Any(e => e.CategorizableItem.Name == model.CategoryTreeForKey)); } return(query.OrderBy(category => category.Name) .Select(category => new LookupKeyValue { Key = category.Id.ToString(), Value = category.Name }) .ToList()); }
public ActionResult SuggestCategories(CategorySuggestionViewModel model) { var suggestedTags = GetCommand <SearchCategoriesCommand>().ExecuteCommand(model); return(Json(new { suggestions = suggestedTags })); }