Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using System.Collections.Generic;
- namespace _05._Teamwork_projects
- {
- class Teams
- {
- public string NameTeam { get; set; }
- public string Creator { get; set; }
- public List<string> Members { get; set; }
- public Teams (string nameTeam,string creator, List<string> membersList)
- {
- NameTeam = nameTeam;
- Creator = creator;
- Members = membersList;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- int numberOfTeams = int.Parse(Console.ReadLine());
- List<Teams> allIfroForTeams = new List<Teams>();
- for (int i = 0; i < numberOfTeams; i++)
- {
- List<string> membersList = new List<string>();
- string[] createTeam = Console.ReadLine().Split('-').ToArray();
- string nameTeam = createTeam[1];
- string creator = createTeam[0];
- Teams team = new Teams(nameTeam, creator, membersList);//new object every time
- if (!allIfroForTeams.Select(x => x.NameTeam).Contains(team.NameTeam))
- {
- if (!allIfroForTeams.Select(x => x.Creator).Contains(team.Creator))
- {
- allIfroForTeams.Add(team);
- Console.WriteLine($"Team {team.NameTeam} has been created by {team.Creator}!");
- }
- else
- {
- Console.WriteLine($"{team.Creator} cannot create another team!");
- }
- }
- else
- {
- Console.WriteLine($"Team {team.NameTeam} was already created!");
- }
- }
- while (true)
- {
- string[] joinMember = Console.ReadLine().Split("->").ToArray();
- if (joinMember[0] == "end of assignment")
- {
- var teamsToDisband = allIfroForTeams.OrderBy(x => x.NameTeam).Where(x => x.Members.Count == 0);
- var fullTeams = allIfroForTeams
- .OrderByDescending(x => x.Members.Count)
- .ThenBy(x => x.NameTeam)
- .Where(x => x.Members.Count > 0);
- foreach (var team in fullTeams)
- {
- Console.WriteLine($"{team.NameTeam}");
- Console.WriteLine($"- {team.Creator}");
- foreach (var member in team.Members.OrderBy(x => x))
- {
- Console.WriteLine($"-- {member}");
- }
- }
- Console.WriteLine("Teams to disband:");
- foreach (var item in teamsToDisband)
- {
- Console.WriteLine(item.NameTeam);
- }
- return;
- }
- else
- {
- string nameJoinMember = joinMember[0];
- string nameJoinTeam = joinMember[1];
- if(! allIfroForTeams.Select(s=>s.NameTeam).Contains(nameJoinTeam))
- {
- Console.WriteLine($"Team {nameJoinTeam} does not exist!");
- }
- else if( allIfroForTeams.Select(s => s.Members).Any(s => s.Contains(nameJoinMember))||
- allIfroForTeams.Select(s => s.Creator).Contains(nameJoinMember))
- {
- Console.WriteLine($"Member {nameJoinMember} cannot join team {nameJoinTeam}!");
- }
- else
- {
- int teamToJoinIndex = allIfroForTeams.FindIndex(x => x.NameTeam == nameJoinTeam);
- allIfroForTeams[teamToJoinIndex].Members.Add(nameJoinMember);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement