Advertisement
yani-valeva

TeamworkProjects

Feb 8th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class TeamworkProjects
  6. {
  7. public static void Main()
  8. {
  9. int teamsCount = int.Parse(Console.ReadLine());
  10. List<Team> teams = new List<Team>();
  11.  
  12. for (int i = 0; i < teamsCount; i++)
  13. {
  14. string[] usersAndTeamsInfo = Console.ReadLine().Split('-');
  15. string userName = usersAndTeamsInfo[0];
  16. string teamName = usersAndTeamsInfo[1];
  17.  
  18. if (teams.Any(t => t.TeamName == teamName))
  19. {
  20. Console.WriteLine($"Team {teamName} was already created!");
  21. continue;
  22. }
  23. if (teams.Any(c => c.CreatorName == userName))
  24. {
  25. Console.WriteLine($"{userName} cannot create another team!");
  26. continue;
  27. }
  28. if (!teams.Any(t => t.TeamName == teamName))
  29. {
  30. Team team = new Team();
  31. team.CreatorName = userName;
  32. team.TeamName = teamName;
  33. team.Members = new List<string>();
  34. teams.Add(team);
  35. Console.WriteLine($"Team {teamName} has been created by {userName}!");
  36. }
  37.  
  38. }
  39.  
  40. string memberAndTeamInfo = Console.ReadLine();
  41.  
  42. while (!memberAndTeamInfo.Equals("end of assignment"))
  43. {
  44. string[] memberAndTeam = memberAndTeamInfo.Split(new char[] { '-', '>' }, StringSplitOptions.RemoveEmptyEntries);
  45. string memberName = memberAndTeam[0];
  46. string teamName = memberAndTeam[1];
  47.  
  48. if (teams.All(t => t.TeamName != teamName))
  49. {
  50. Console.WriteLine($"Team {teamName} does not exist!");
  51. }
  52. else if (teams.Any(m => m.Members.Contains(memberName)) || teams.Any(c => c.CreatorName.Contains(memberName)))
  53. {
  54. Console.WriteLine($"Member {memberName} cannot join team {teamName}!");
  55. }
  56. else if (teams.Any(t => t.TeamName == teamName))
  57. {
  58. foreach (var team in teams)
  59. {
  60. if (team.TeamName == teamName)
  61. {
  62. team.Members.Add(memberName);
  63. break;
  64. }
  65. }
  66. }
  67.  
  68. memberAndTeamInfo = Console.ReadLine();
  69. }
  70.  
  71. foreach (var team in teams.Where(m => m.Members.Count > 0).OrderByDescending(m => m.Members.Count).ThenBy(n => n.TeamName))
  72. {
  73. Console.WriteLine(team.TeamName);
  74. Console.WriteLine($"- {team.CreatorName}");
  75.  
  76. var selectedTeams = team.Members;
  77.  
  78. foreach (var member in selectedTeams.OrderBy(m => m))
  79. {
  80. Console.WriteLine($"-- {member}");
  81. }
  82. }
  83.  
  84. Console.WriteLine("Teams to disband:");
  85.  
  86. foreach (var team in teams.Where(m => m.Members.Count == 0).OrderBy(n => n.TeamName))
  87. {
  88. Console.WriteLine($"{team.TeamName}");
  89. }
  90. }
  91. }
  92.  
  93. public class Team
  94. {
  95. public string TeamName { get; set; }
  96.  
  97. public List<string> Members { get; set; }
  98.  
  99. public string CreatorName { get; set; }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement