Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace StewCans
- {
- public class Program
- {
- static void Main(string[] args)
- {
- StewCanService service = new StewCanService();
- service.Run();
- }
- }
- public class StewCan
- {
- public StewCan(string name, int productionYear, int shelfLife)
- {
- Name = name;
- ProductionYear = productionYear;
- ShelfLife = shelfLife;
- }
- public string Name { get; private set; }
- public int ProductionYear { get; private set; }
- public int ShelfLife { get; private set; }
- public int ExpirationYear => ProductionYear + ShelfLife;
- }
- public class StewCanCreator
- {
- public List<StewCan> CreateStewCans()
- {
- return new List<StewCan>
- {
- new StewCan("Говядина ГОСТ", 2018, 5),
- new StewCan("Свинина Люкс", 2024, 4),
- new StewCan("Курица Домашняя", 2019, 3),
- new StewCan("Баранина Премиум", 2017, 6),
- new StewCan("Говядина Экстра", 2016, 7),
- new StewCan("Свинина Классик", 2021, 2),
- new StewCan("Курица Фермерская", 2024, 2),
- new StewCan("Говядина Традиция", 2025, 8),
- new StewCan("Свинина Деревенская", 2019, 4),
- new StewCan("Курица Натуральная", 2023, 3),
- };
- }
- }
- public class StewCanService
- {
- private readonly List<StewCan> _stewCans;
- public StewCanService()
- {
- StewCanCreator creator = new StewCanCreator();
- _stewCans = creator.CreateStewCans();
- }
- public void Run()
- {
- const string CommandToShowAll = "1";
- const string CommandToShowExpired = "2";
- const string CommandToExit = "3";
- bool isRunning = true;
- while (isRunning)
- {
- Console.Clear();
- Console.WriteLine("Меню:");
- Console.WriteLine($"{CommandToShowAll}. Показать все банки тушенки");
- Console.WriteLine($"{CommandToShowExpired}. Показать просроченные банки тушенки");
- Console.WriteLine($"{CommandToExit}. Выход");
- Console.Write("Выберите пункт меню: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandToShowAll:
- ShowStewCans(_stewCans, "Все банки тушенки:");
- break;
- case CommandToShowExpired:
- ShowExpiredStewCans();
- break;
- case CommandToExit:
- isRunning = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод. Попробуйте снова.");
- break;
- }
- if (isRunning)
- {
- Pause();
- }
- }
- }
- private void ShowStewCans(List<StewCan> cans, string header)
- {
- Console.WriteLine("\n" + header);
- if (cans.Count == 0)
- {
- Console.WriteLine("Список пуст.");
- }
- else
- {
- foreach (StewCan can in cans)
- {
- Console.WriteLine($"{can.Name}, год выпуска: {can.ProductionYear}, срок годности: {can.ShelfLife} года(лет), год окончания: {can.ExpirationYear}");
- }
- }
- }
- private void ShowExpiredStewCans()
- {
- int currentYear = DateTime.Now.Year;
- List<StewCan> expired = _stewCans.Where(can => can.ExpirationYear < currentYear).ToList();
- ShowStewCans(expired, "Просроченные банки тушенки:");
- }
- private void Pause()
- {
- Console.WriteLine("\nНажмите любую клавишу для продолжения...");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment