Пример #1
0
        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));
        }
Пример #2
0
        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);
        }