Advertisement
IGRODELOFF

Task55

Sep 3rd, 2022
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Task55
  8. {
  9.     internal class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Storage storage = new Storage();
  14.             storage.Work();
  15.         }
  16.     }
  17.  
  18.     class Storage
  19.     {
  20.         private List<Product> _products;
  21.         private int _currentYear;
  22.  
  23.         public Storage()
  24.         {
  25.             _currentYear = 2022;
  26.             _products = new List<Product>();
  27.             _products.Add(new Product("Говяжья Тушёнка", 2019, 8));
  28.             _products.Add(new Product("Свиная Тушёнка", 2020, 7));
  29.             _products.Add(new Product("Куриная Тушёнка", 2015, 5));
  30.             _products.Add(new Product("Утиная Тушёнка", 2010, 9));
  31.             _products.Add(new Product("Гусиная Тушёнка", 2017, 1));
  32.             _products.Add(new Product("Индюшиная Тушёнка", 2018, 5));
  33.         }
  34.  
  35.         public void Work()
  36.         {
  37.             string wholeStock =
  38.                 "Доступный запас на складе.";
  39.             string expiredProducts =
  40.                 "Просроченные: ";
  41.  
  42.             Console.WriteLine(wholeStock);
  43.             Show(_products);
  44.             Console.WriteLine();
  45.  
  46.             Console.WriteLine(expiredProducts);
  47.             ShowExpiredProducts();
  48.         }
  49.  
  50.         private void ShowExpiredProducts()
  51.         {
  52.             List<Product> expiredProducts = new List<Product>();
  53.  
  54.             expiredProducts = _products.Where(product => product.YearProduction + product.BestBeforeDate <= _currentYear).ToList();
  55.             Show(expiredProducts);
  56.         }
  57.  
  58.         private void Show(List<Product> products)
  59.         {
  60.             foreach (var product in products)
  61.             {
  62.                 product.Show();
  63.             }
  64.         }
  65.     }
  66.  
  67.     class Product
  68.     {
  69.         public string Name { get; private set; }
  70.         public int YearProduction { get; private set; }
  71.         public int BestBeforeDate { get; private set; }
  72.  
  73.         public Product(string name, int yearProduction, int bestBeforeDate)
  74.         {
  75.             Name = name;
  76.             YearProduction = yearProduction;
  77.             BestBeforeDate = bestBeforeDate;
  78.         }
  79.  
  80.         public void Show()
  81.         {
  82.             Console.WriteLine(
  83.                 $"Кароточка продукта :\n" +
  84.                 $"Наименование       : {Name}\n" +
  85.                 $"Год производства   : {YearProduction}\n" +
  86.                 $"Срок годности      : {BestBeforeDate}");
  87.         }
  88.     }
  89. }
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement