Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _09.TeamworkProjects
- {
- class Team
- {
- public string TeamName { get; set; }
- public string Creator { get; set; }
- public List<string> Members { get; set; }
- }
- class Program
- {
- static void Main()
- {
- List<Team> team = new List<Team>();
- team = TeamCreator();
- AddingMembers(team);
- Print(team);
- }
- static List<Team> TeamCreator()
- {
- List<Team> team = new List<Team>();
- int numbersOfTeams = int.Parse(Console.ReadLine());
- for(int i = 0; i < numbersOfTeams; i++)
- {
- string[] currentTeamData = Console.ReadLine().Split('-').ToArray();
- string currentCreator = currentTeamData[0];
- string currentTeam = currentTeamData[1];
- if(!team.Any(x => x.TeamName.Equals(currentTeam)) && !team.Any(x => x.Creator.Equals(currentCreator)))
- {
- var newTeam = new Team
- {
- TeamName = currentTeam,
- Creator = currentCreator,
- Members = new List<string>()
- };
- team.Add(newTeam);
- Console.WriteLine($"Team {currentTeam} has been created by {currentCreator}!");
- }
- else if(team.Any(x => x.TeamName.Equals(currentTeam)))
- {
- Console.WriteLine($"Team {currentTeam} was already created!");
- }
- else if(team.Any(x => x.Creator.Equals(currentCreator)))
- {
- Console.WriteLine($"{currentCreator} cannot create another team!");
- }
- }
- return team;
- }
- static void AddingMembers(List<Team> team)
- {
- string membersInput = Console.ReadLine();
- while(membersInput != "end of assignment")
- {
- string[] candidatMemberTeam = membersInput.Split(new char[] { '-', '>'}, StringSplitOptions.RemoveEmptyEntries).ToArray();
- string member = candidatMemberTeam[0];
- string wantedTeam = candidatMemberTeam[1];
- if(!team.Any(x => x.TeamName.Equals(wantedTeam)))
- {
- Console.WriteLine($"Team {wantedTeam} does not exist!");
- }
- else if( team.Select(x => x.Members).Any(x => x.Contains(member)) || team.Any(x => x.Creator.Equals(member)))
- {
- Console.WriteLine($"Member {member} cannot join team {wantedTeam}!");
- }
- else
- {
- int teamIndex = team.FindIndex(x => x.TeamName == (wantedTeam));
- team[teamIndex].Members.Add(member);
- // (team.First(x => x.TeamName.Equals(club))).Members.Add(member);
- }
- membersInput = Console.ReadLine();
- }
- }
- static void Print(List<Team> team)
- {
- var teamWithMembers = team.Where(x => x.Members.Count > 0).
- OrderBy(x => x.TeamName).
- ThenByDescending(x => x.Members.Count).
- ToList();
- foreach (var club in teamWithMembers)
- {
- var members = club.Members.OrderBy(x => x).ToList();
- Console.WriteLine(club.TeamName);
- Console.WriteLine("- " + club.Creator);
- foreach (var name in members)
- {
- Console.WriteLine("-- " + name);
- }
- }
- Console.WriteLine("Teams to disband:");
- var emptyTeam = team.Where(x => x.Members.Count == 0).OrderBy(x => x.TeamName).ToList();
- foreach (var club in emptyTeam)
- {
- Console.WriteLine(club.TeamName);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement