using TechnoWorld.Models; namespace TechnoWorld.Data; public static class ProductStore { public static readonly List Products = [ new Product { Id = 1, Name = "Ноутбук Pro 15", Category = "Ноутбуки", Price = 89990m, Specs = "Экран 15.6\u2033 · 8 ГБ RAM · SSD 512 ГБ", Icon = "bi-laptop", Badge = "badge-hit", BadgeText = "Хит продаж" }, new Product { Id = 2, Name = "Ноутбук Air 13", Category = "Ноутбуки", Price = 64990m, Specs = "Экран 13.3\u2033 · 16 ГБ RAM · SSD 1 ТБ", Icon = "bi-laptop", Badge = "badge-new", BadgeText = "Новинка" }, new Product { Id = 3, Name = "Ноутбук Gaming X17", Category = "Ноутбуки", Price = 119990m, Specs = "Экран 17.3\u2033 · 32 ГБ RAM · RTX 4060 · SSD 1 ТБ", Icon = "bi-laptop", Badge = "badge-hot", BadgeText = "Выгодно" }, new Product { Id = 4, Name = "Смартфон Nova X", Category = "Смартфоны", Price = 29990m, Specs = "Экран 6.7\u2033 · Камера 108 Мп · 128 ГБ", Icon = "bi-phone", Badge = "badge-hit", BadgeText = "Хит продаж" }, new Product { Id = 5, Name = "Смартфон Vega Plus", Category = "Смартфоны", Price = 45990m, Specs = "Экран 6.5\u2033 · 256 ГБ · 5G", Icon = "bi-phone", Badge = "badge-new", BadgeText = "Новинка" }, new Product { Id = 6, Name = "Смартфон Neo SE", Category = "Смартфоны", Price = 17990m, Specs = "Экран 6.1\u2033 · 64 ГБ · NFC", Icon = "bi-phone", Badge = "" }, new Product { Id = 7, Name = "Планшет Tab Lite", Category = "Планшеты", Price = 18490m, Specs = "Экран 11\u2033 · 4 ГБ RAM · 128 ГБ", Icon = "bi-tablet", Badge = "badge-new", BadgeText = "Новинка" }, new Product { Id = 8, Name = "Планшет Tab Pro 12", Category = "Планшеты", Price = 42990m, Specs = "Экран 12.4\u2033 · 8 ГБ RAM · 256 ГБ", Icon = "bi-tablet", Badge = "badge-hot", BadgeText = "Выгодно" }, new Product { Id = 9, Name = "Наушники SoundMax", Category = "Наушники", Price = 3990m, Specs = "Bluetooth 5.3 · ANC · 40 ч автономной работы", Icon = "bi-headphones", Badge = "badge-hit", BadgeText = "Хит продаж" }, new Product { Id = 10, Name = "Наушники AirBuds Mini", Category = "Наушники", Price = 2490m, Specs = "Bluetooth 5.2 · 25 ч · зарядный кейс", Icon = "bi-headphones", Badge = "badge-new", BadgeText = "Новинка" }, new Product { Id = 11, Name = "Наушники Studio Over", Category = "Наушники", Price = 7990m, Specs = "Проводные · студийные · 32 Ом", Icon = "bi-headphones", Badge = "" }, new Product { Id = 12, Name = "Клавиатура Mech RGB", Category = "Аксессуары", Price = 5490m, Specs = "Механическая · RGB-подсветка · RU", Icon = "bi-keyboard", Badge = "badge-hot", BadgeText = "Выгодно" }, new Product { Id = 13, Name = "Мышь Ergo Pro", Category = "Аксессуары", Price = 1990m, Specs = "Беспроводная · 6000 DPI · тихие кнопки", Icon = "bi-mouse", Badge = "" }, new Product { Id = 14, Name = "Монитор View 27", Category = "Аксессуары", Price = 24990m, Specs = "27\u2033 · QHD · 144 Гц · IPS", Icon = "bi-display", Badge = "badge-hit", BadgeText = "Хит продаж" } ]; public static readonly List Categories = [ "Ноутбуки", "Смартфоны", "Планшеты", "Наушники", "Аксессуары" ]; public static IEnumerable GetHits() { return Products .Where(p => p.BadgeText == "Хит продаж") .Take(4); } public static IEnumerable GetByFilter(string? category, string? search) { IEnumerable query = Products; if (!string.IsNullOrWhiteSpace(category)) { query = query.Where(p => p.Category.Equals(category, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(search)) { query = query.Where(p => p.Name.Contains(search, StringComparison.OrdinalIgnoreCase) || p.Specs.Contains(search, StringComparison.OrdinalIgnoreCase)); } return query.ToList(); } }