Last active
November 14, 2023 07:45
-
-
Save MightyBlow/839732b652ee2ac10c4d76a521f00ebf to your computer and use it in GitHub Desktop.
Task 57: Merge Squads
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace MergeSquads | |
{ | |
public static class Program | |
{ | |
public static void Main() | |
{ | |
Army army = new Army(); | |
Database database = new Database(); | |
army.Work(database); | |
} | |
} | |
public class Database | |
{ | |
private List<Soldier> _alphaSquad = new(); | |
private List<Soldier> _betaSquad = new(); | |
public Database() | |
{ | |
CreateAlphaSquad(); | |
CreateBetaSquad(); | |
} | |
public List<Soldier> GetAlphaSquad() => new(_alphaSquad); | |
public List<Soldier> GetBetaSquad() => new(_betaSquad); | |
public void SetAlphaSquad(IEnumerable<Soldier> alphaSquad) => _alphaSquad = alphaSquad.ToList(); | |
public void SetBetaSquad(IEnumerable<Soldier> betaSquad) => _betaSquad = betaSquad.ToList(); | |
private void CreateAlphaSquad() | |
{ | |
_alphaSquad.Add(new Soldier("John", "Smith")); | |
_alphaSquad.Add(new Soldier("William", "Bones")); | |
_alphaSquad.Add(new Soldier("David", "Brown")); | |
_alphaSquad.Add(new Soldier("Jessica", "Taylor")); | |
_alphaSquad.Add(new Soldier("Joseph", "Miller")); | |
_alphaSquad.Add(new Soldier("Michael", "Davis")); | |
} | |
private void CreateBetaSquad() | |
{ | |
_betaSquad.Add(new Soldier("Megan", "Fox")); | |
_betaSquad.Add(new Soldier("Angela", "Wilson")); | |
_betaSquad.Add(new Soldier("Richard", "Moore")); | |
_betaSquad.Add(new Soldier("Thomas", "Johnson")); | |
_betaSquad.Add(new Soldier("Joseph", "Miller")); | |
_betaSquad.Add(new Soldier("Donald", "Johnson")); | |
} | |
} | |
public class Soldier | |
{ | |
public Soldier(string firstName, string lastName) | |
{ | |
FirstName = firstName; | |
LastName = lastName; | |
} | |
public string FirstName { get; } | |
public string LastName { get; } | |
} | |
public class Army | |
{ | |
private bool _isWork = true; | |
private Database _database; | |
public void Work(Database database) | |
{ | |
_database = database; | |
while (_isWork) | |
{ | |
Console.Clear(); | |
ShowSoldiers(); | |
Console.ReadKey(); | |
} | |
} | |
private void ShowSoldiers() | |
{ | |
char filteredChar = 'B'; | |
IEnumerable<Soldier> soldiers; | |
IEnumerable<Soldier> betaSquad; | |
IEnumerable<Soldier> alphaSquad; | |
soldiers = _database.GetAlphaSquad().Where(soldier => soldier.LastName.StartsWith(filteredChar)); | |
betaSquad = _database.GetBetaSquad().Union(soldiers); | |
_database.SetBetaSquad(betaSquad); | |
alphaSquad = _database.GetAlphaSquad().Where(soldier => soldier.LastName.StartsWith(filteredChar) == false); | |
_database.SetAlphaSquad(alphaSquad); | |
Console.WriteLine("\nBeta Squad:"); | |
foreach (Soldier soldier in _database.GetBetaSquad()) | |
{ | |
Console.WriteLine($"Name: {soldier.FirstName}, " + | |
$"Rank: {soldier.LastName}"); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment