lovelyvook

Unit_54

Aug 18th, 2024 (edited)
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Ijunior
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Inspector inspector = new Inspector();
  12.             inspector.Work();
  13.         }
  14.     }
  15.  
  16.     class Inspector
  17.     {
  18.         private Database _database = new Database();
  19.  
  20.         public void Work()
  21.         {
  22.             Console.WriteLine("Список просроченной тушенки: ");
  23.             FindSpoiled();
  24.         }
  25.  
  26.         private void FindSpoiled()
  27.         {
  28.             int currenYear = 2024;
  29.  
  30.             var spoiledTinnedMeat = _database.TinnedMeat.Where(tinnedMeat =>
  31.             tinnedMeat.Year + tinnedMeat.ExpirationDate <= currenYear).ToList();
  32.  
  33.             if (spoiledTinnedMeat.Count > 0)
  34.                 ShowTinnedMeat(spoiledTinnedMeat);
  35.             else
  36.                 Console.WriteLine("Просроченной тушенки нет");
  37.         }
  38.  
  39.         private void ShowTinnedMeat(List<TinnedMeat> tinnedMeat)
  40.         {
  41.             foreach (TinnedMeat tin in tinnedMeat)
  42.             {
  43.                 Console.WriteLine($"{tin.Name} - выпущена {tin.Year}, срок годности {tin.ExpirationDate} года, " +
  44.                                   $"нужно было употребить до конца {tin.Year + tin.ExpirationDate}");
  45.             }
  46.         }
  47.     }
  48.  
  49.     class Database
  50.     {
  51.         private List<TinnedMeat> _tinnedMeat;
  52.  
  53.         public Database()
  54.         {
  55.             _tinnedMeat = new List<TinnedMeat>();
  56.             AddTinnedMeat();
  57.         }
  58.  
  59.         public List<TinnedMeat> TinnedMeat => _tinnedMeat.ToList();
  60.  
  61.         private void AddTinnedMeat()
  62.         {
  63.             _tinnedMeat.Add(new TinnedMeat("Дары полей", GenerateYear(), 3));
  64.             _tinnedMeat.Add(new TinnedMeat("Дары полей", GenerateYear(), 3));
  65.             _tinnedMeat.Add(new TinnedMeat("Дары полей", GenerateYear(), 3));
  66.             _tinnedMeat.Add(new TinnedMeat("Сытный вар", GenerateYear(), 4));
  67.             _tinnedMeat.Add(new TinnedMeat("Сытный вар", GenerateYear(), 4));
  68.             _tinnedMeat.Add(new TinnedMeat("Сытный вар", GenerateYear(), 4));
  69.             _tinnedMeat.Add(new TinnedMeat("Деликатес охотника", GenerateYear(), 5));
  70.             _tinnedMeat.Add(new TinnedMeat("Деликатес охотника", GenerateYear(), 5));
  71.             _tinnedMeat.Add(new TinnedMeat("Деликатес охотника", GenerateYear(), 5));
  72.         }
  73.  
  74.         private int GenerateYear()
  75.         {
  76.             int minYear = 2014;
  77.             int maxYear = 2024;
  78.  
  79.             return Utils.GetRandomNumber(minYear, maxYear);
  80.         }
  81.     }
  82.  
  83.     class TinnedMeat
  84.     {
  85.         public TinnedMeat(string name, int year, int expirationDate)
  86.         {
  87.             Name = name;
  88.             Year = year;
  89.             ExpirationDate = expirationDate;
  90.         }
  91.  
  92.         public string Name { get; }
  93.         public int Year { get; }
  94.         public int ExpirationDate { get; }
  95.     }
  96.  
  97.     class Utils
  98.     {
  99.         private static Random s_random = new Random();
  100.  
  101.         public static int GetRandomNumber(int minValue, int maxValue)
  102.         {
  103.             return s_random.Next(minValue, maxValue);
  104.         }
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment