123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Formats.Asn1;
- using System.Globalization;
- using System.IO;
- using System.Linq;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- using CsvHelper;
- namespace wpf_template.Model
- {
- [DataContract]
- public class Product
- {
- [DataMember]
- public string Title { get; set; }
- [DataMember]
- public string Company { get; set; }
- [DataMember]
- public int Price { get; set; }
- [DataMember]
- public string Category { get; set; }
- [DataMember]
- public bool Existence { get; set; }
- [DataMember(Name = "ArrivalDate")]
- private string? stringArrivalDate { get; set; }
- [IgnoreDataMember]
- public DateOnly? ArrivalDate
- {
- get
- {
- return stringArrivalDate == null ? null : DateOnly.Parse(stringArrivalDate);
- }
- set
- {
- stringArrivalDate = value.ToString();
- }
- }
- [DataMember]
- public double Rating { get; set; }
- [DataMember]
- public string Photo { get; set; }
- [IgnoreDataMember]
- public string ExistenceString
- {
- get {
- return Existence ? "Да" : "Нет";
- }
- }
- public Uri? ImageBitmap
- {
- get
- {
- var imageName = Environment.CurrentDirectory + "/img/" + (Photo ?? "");
- return System.IO.File.Exists(imageName) ? new Uri(imageName) : null;
- }
- }
- }
- public class ProductCategory
- {
- public string title { get; set; }
- }
- public class ProductPrice
- {
- public string title { get; set; }
- public int priceFrom { get; set; }
- public int priceTo { get; set; }
- }
- public class ProductCompany
- {
- public string title { get; set; }
- }
- interface IDataProvider
- {
- IEnumerable<Product> GetProducts();
- IEnumerable<ProductCategory> GetCategories();
- IEnumerable<ProductPrice> GetPrices();
- IEnumerable<ProductCompany> GetCompanies();
- }
- public class LocalDataProvider : IDataProvider
- {
- public IEnumerable<Product> GetProducts()
- {
- return new Product[]{
- new Product
- {
- Category = "Смартфон",
- Company = "Apple",
- Title = "13 Pro Max",
- Price = 84999
- },
- new Product
- {
- Category = "Смартфон",
- Company = "Samsung",
- Title = "S23",
- Price = 89999
- },
- new Product
- {
- Category = "Смартфон",
- Company = "Huawei",
- Title = "Nova Y61",
- Price = 9999
- },
- new Product
- {
- Category = "Смартфон",
- Company = "POCO",
- Title = "C51",
- Price = 5599
- },
- new Product
- {
- Category = "Ноутбук",
- Company = "Xiaomi",
- Title = "RedmiBook 15",
- Price = 49999
- },
- new Product
- {
- Category = "Ноутбук",
- Company = "Asus",
- Title = "Vivobook Go 15",
- Price = 25999
- },
- new Product
- {
- Category = "Ноутбук",
- Company = "Lenovo",
- Title = "IdeaPad 1",
- Price = 24999
- },
- new Product
- {
- Category = "Ноутбук",
- Company = "Asus",
- Title = "ExpertBook B1502",
- Price = 32999
- },
- new Product
- {
- Category = "Смарт-Часы",
- Company = "Apple",
- Title = "SE 2023",
- Price = 30599
- },
- new Product
- {
- Category = "Смарт-Часы",
- Company = "Xiaomi",
- Title = "Smart Band 8",
- Price = 3999
- },
- new Product
- {
- Category = "Смарт-Часы",
- Company = "Huawei",
- Title = "Watch GT 4",
- Price = 13999
- },
- };
- }
- public IEnumerable<ProductCategory> GetCategories()
- {
- return new ProductCategory[]
- {
- new ProductCategory {title = "Смартфон"},
- new ProductCategory {title = "Ноутбук"},
- new ProductCategory {title = "Смарт-Часы"},
- new ProductCategory {title = "Монитор"}
- };
- }
- public IEnumerable<ProductPrice> GetPrices()
- {
- return new ProductPrice[]
- {
- new ProductPrice{title="Все цены", priceFrom = 0, priceTo = 999999},
- new ProductPrice{title="До 10.000", priceFrom = 0, priceTo = 10000},
- new ProductPrice{title="От 10.000 до 20.000", priceFrom = 10000, priceTo = 20000},
- new ProductPrice{title="От 20.000 до 50.000", priceFrom = 20000, priceTo = 50000},
- new ProductPrice{title="Дороже 50.000", priceFrom = 50000, priceTo = 999999 }
- };
- }
- public IEnumerable<ProductCompany> GetCompanies()
- {
- return new ProductCompany[]
- {
- new ProductCompany{title = "Apple"},
- new ProductCompany{title = "Xiaomi"},
- new ProductCompany{title = "Huawei"},
- new ProductCompany{title = "POCO"},
- new ProductCompany{title = "Asus"},
- new ProductCompany{title = "Lenovo"},
- new ProductCompany{title = "Samsung"},
- new ProductCompany{title = "Acer"},
- new ProductCompany{title = "AOC"}
- };
- }
- }
- }
|