public IItemsData getItemsByCategory(ItemCategory category, int countOnPage, int page) { DAL.Entities.ItemCategory assembledCategory = Assembler.Assemble(category); IEnumerable <DAL.Entities.Item> found = repository.ItemRepository. GetAll().Where(item => item.Category == assembledCategory). OrderByDescending(item => item.AddingTime). Skip((page - 1) * countOnPage). Take(countOnPage). Include(item => item.Names). ToList(); IEnumerable <IItem> items = Assembler.Assemble(found.ToList()); int itemsTotalCount = repository.ItemRepository.GetAll().Where(item => item.Category == assembledCategory).Count(); return(new ItemsData(itemsTotalCount, items)); }
private static ItemCategory Assemble(DAL.Entities.ItemCategory itemCategory) { ItemCategory result; switch (itemCategory) { case DAL.Entities.ItemCategory.Notepad: result = ItemCategory.Notepad; break; case DAL.Entities.ItemCategory.Pen: result = ItemCategory.Pen; break; default: ThrowAssemblingException("NotepadShop.BLL.Entities.ItemCategory"); result = ItemCategory.Notepad; break; } return(result); }