public IActionResult Index(KnowledgeListViewModel model, int currentPage = 1, string searchText = null) { if (string.IsNullOrEmpty(model.PaginationModel.SearchText)) { model.PaginationModel.SearchText = searchText; } var isModelValid = TryValidateModel(model); if (isModelValid) { var itemListModel = this.knowledgeService.GetItemList(model); itemListModel = this.paginationService.GetPageModel <KnowledgeListViewModel, KnowledgeItemListViewModel>(itemListModel, currentPage, model.PaginationModel.SearchText, this.GetType(), "Index", null); return(View(itemListModel)); } return(this.View(model)); }
public KnowledgeListViewModel GetItemList(KnowledgeListViewModel model) { var items = new List <KnowledgeItemListViewModel>(); if (!string.IsNullOrEmpty(model.PaginationModel.SearchText) && model.PaginationModel.SearchText == Constants.FoodItemName) { items.AddRange(this.context.FoodItems.Select(fi => new KnowledgeItemListViewModel { Id = fi.Id, Name = fi.Name, Type = Constants.FoodItemName })); } else if (!string.IsNullOrEmpty(model.PaginationModel.SearchText) && model.PaginationModel.SearchText == Constants.MicroElementName) { items.AddRange(this.context.MicroElements.Select(fi => new KnowledgeItemListViewModel { Id = fi.Id, Name = fi.Name, Type = Constants.MicroElementName })); } else if (!string.IsNullOrEmpty(model.PaginationModel.SearchText) && model.PaginationModel.SearchText == Constants.MacroElementName) { items.AddRange(this.context.MacroElements.Select(fi => new KnowledgeItemListViewModel { Id = fi.Id, Name = fi.Name, Type = Constants.MacroElementName })); } else if (!string.IsNullOrEmpty(model.PaginationModel.SearchText) && model.PaginationModel.SearchText == Constants.Recipename) { items.AddRange(this.context.Recipes.Select(fi => new KnowledgeItemListViewModel { Id = fi.Id, Name = fi.Name, Type = Constants.Recipename })); } else { var microElements = this.context.MicroElements.Where(me => me.Name.Contains(model.PaginationModel.SearchText ?? string.Empty)).Select( me => new KnowledgeItemListViewModel { Id = me.Id, Name = me.Name, Type = Constants.MicroElementName }).ToList(); var macroElements = this.context.MacroElements.Where(me => me.Name.Contains(model.PaginationModel.SearchText ?? string.Empty)).Select( me => new KnowledgeItemListViewModel { Id = me.Id, Name = me.Name, Type = Constants.MacroElementName }).ToList(); var foodItems = this.context.FoodItems.Where(fi => fi.Name.Contains(model.PaginationModel.SearchText ?? string.Empty)).Select( me => new KnowledgeItemListViewModel { Id = me.Id, Name = me.Name, Type = Constants.FoodItemName }).ToList(); var recipes = this.context.Recipes.Where(r => r.Name.Contains(model.PaginationModel.SearchText ?? string.Empty)).Select( me => new KnowledgeItemListViewModel { Id = me.Id, Name = me.Name, Type = Constants.Recipename }).ToList(); items.AddRange(microElements); items.AddRange(macroElements); items.AddRange(foodItems); items.AddRange(recipes); } var resultListViewModel = new KnowledgeListViewModel { Items = items }; resultListViewModel.PaginationModel.TotalPages = this.paginationService.GetTotalPages(resultListViewModel.Items.Count); return(resultListViewModel); }