Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Amnesty
- {
- public class Program
- {
- static void Main(string[] args)
- {
- PrisonerService service = new PrisonerService();
- service.Run();
- }
- }
- public class Prisoner
- {
- public Prisoner(string fullName, string crime)
- {
- FullName = fullName;
- Crime = crime;
- }
- public string FullName { get; private set; }
- public string Crime { get; private set; }
- }
- public class PrisonerCreator
- {
- public List<Prisoner> CreatePrisoners()
- {
- return new List<Prisoner>
- {
- new Prisoner("Иванов Иван Иванович", "Кража"),
- new Prisoner("Петров Петр Петрович", "Антиправительственное"),
- new Prisoner("Сидоров Сидор Сидорович", "Грабёж"),
- new Prisoner("Варнов Михаил Александрович", "Антиправительственное"),
- new Prisoner("Савельев Анатолий Максимович", "Убийство"),
- new Prisoner("Габдуллин Ринат Фаритович", "Антиправительственное"),
- new Prisoner("Юлдашев Айдар Маратович", "Мошенничество"),
- new Prisoner("Кадыров Магомед Ахмедович", "Антиправительственное"),
- new Prisoner("Петрова Анастасия Сергеевна", "Кража"),
- new Prisoner("Семенов Алексей Николаевич", "Грабёж"),
- };
- }
- }
- public class PrisonerService
- {
- private List<Prisoner> _prisoners;
- private bool _amnestyApplied = false;
- public PrisonerService()
- {
- PrisonerCreator creator = new PrisonerCreator();
- _prisoners = creator.CreatePrisoners();
- }
- public void Run()
- {
- const string CommandToShowPrisoners = "1";
- const string CommandToApplyAmnesty = "2";
- const string CommandToExit = "3";
- bool isWorking = true;
- while (isWorking)
- {
- Console.Clear();
- Console.WriteLine("\nМеню:");
- Console.WriteLine($" {CommandToShowPrisoners}. Показать список заключённых");
- Console.WriteLine($" {CommandToApplyAmnesty}. Провести амнистию");
- Console.WriteLine($" {CommandToExit}. Выход");
- Console.Write(" Выберите пункт меню: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandToShowPrisoners:
- ShowPrisoners();
- break;
- case CommandToApplyAmnesty:
- ApplyAmnesty();
- break;
- case CommandToExit:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод. Попробуйте снова.");
- break;
- }
- Pause();
- }
- }
- private void ShowPrisoners()
- {
- Console.WriteLine(_amnestyApplied? "\nСписок заключённых после амнистии:" : "\nСписок заключённых до амнистии:");
- if (_prisoners.Count == 0)
- {
- Console.WriteLine("Список пуст.");
- }
- else
- {
- foreach (var prisoner in _prisoners)
- {
- Console.WriteLine($"{prisoner.FullName}, преступление: {prisoner.Crime}");
- }
- }
- }
- private void ApplyAmnesty()
- {
- if (_amnestyApplied)
- {
- Console.WriteLine("\nАмнистия уже была проведена!");
- return;
- }
- _prisoners = _prisoners.Where(prisoner => prisoner.Crime.Equals("Антиправительственное", StringComparison.OrdinalIgnoreCase) == false).ToList();
- _amnestyApplied = true;
- Console.WriteLine("Амнистия проведена! Заключённые с преступлением 'Антиправительственное' освобождены.");
- }
- private void Pause()
- {
- Console.WriteLine("\nНажмите любую клавишу для продолжения...");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment