Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace p09_TeamworkProjects
- {
- internal class Team
- {
- public string Name { get; set; }
- public List<string> Members { get; set; }
- public string Creator { get; set; }
- public int MembersCount { get; set; }
- }
- internal class Program
- {
- private static void Main(string[] args)
- {
- int teamCount = int.Parse(Console.ReadLine());
- List<Team> teams = new List<Team>();
- List<string> membersList = new List<string>();
- for (int i = 0; i < teamCount; i++)
- {
- TeamCreator(teams, i, membersList);
- }
- string line = Console.ReadLine();
- while (line != "end of assignment")
- {
- string[] memberAndTeam = line.Split(new string[] { "->" }, StringSplitOptions.RemoveEmptyEntries);
- string memberName = memberAndTeam[0];
- string desiredTeam = memberAndTeam[1];
- bool desiredTeamExist = false;
- foreach (var team in teams)
- {
- if (team.Name == desiredTeam)
- {
- desiredTeamExist = true;
- }
- }
- if (desiredTeamExist)
- {
- bool canJoin = true;
- // if user can join team
- foreach (var mList in membersList)
- {
- if (mList == memberName)
- {
- canJoin = false;
- Console.WriteLine($"Member {memberName} cannot join team {desiredTeam}!");
- }
- }
- // end of user can join
- if (canJoin)
- {
- foreach (var team in teams)
- {
- if (team.Name == desiredTeam)
- {
- team.MembersCount++;
- team.Members.Add(memberName);
- membersList.Add(memberName);
- }
- }
- }
- }
- else
- {
- Console.WriteLine($"Team {desiredTeam} does not exist!");
- }
- line = Console.ReadLine();
- }
- foreach (var team in teams.Where(x => x.Members.Count > 0).OrderByDescending(x => x.Members.Count).ThenBy(x => x.Name))
- {
- Console.WriteLine(team.Name);
- Console.WriteLine("- " + team.Creator);
- foreach (var teamMember in team.Members.OrderBy(x => x))
- {
- Console.WriteLine("-- " + teamMember);
- }
- }
- Console.WriteLine("Teams to disband:");
- foreach (var team in teams.Where(x => x.Members.Count == 0).OrderBy(x => x.Name))
- {
- Console.WriteLine(team.Name);
- }
- }
- private static void TeamCreator(List<Team> teams, int i, List<string> membersList)
- {
- string[] line = Console.ReadLine().Split('-');
- string creatorName = line[0];
- string teamToCreate = line[1];
- bool teamIsUnique = true;
- foreach (var team in teams)
- {
- if (team.Name == teamToCreate)
- {
- teamIsUnique = false;
- Console.WriteLine($"Team {teamToCreate} was already created!");
- continue;
- }
- if (team.Creator == creatorName)
- {
- Console.WriteLine($"{creatorName} cannot create another team!");
- }
- }
- if (teamIsUnique)
- {
- Team newTeam = new Team();
- newTeam.Name = teamToCreate;
- newTeam.Creator = creatorName;
- newTeam.Members = new List<string>();
- newTeam.MembersCount = 0;
- teams.Add(newTeam);
- //membersList.Add(creatorName);
- Console.WriteLine($"Team {teamToCreate} has been created by {creatorName}!");
- }
- //}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement