Advertisement
yani-valeva

TeamworkProjects

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