Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace p09_TeamworkProjects
  6. {
  7. internal class Team
  8. {
  9. public string Name { get; set; }
  10. public List<string> Members { get; set; }
  11. public string Creator { get; set; }
  12. public int MembersCount { get; set; }
  13. }
  14.  
  15. internal class Program
  16. {
  17. private static void Main(string[] args)
  18. {
  19. int teamCount = int.Parse(Console.ReadLine());
  20. List<Team> teams = new List<Team>();
  21. List<string> membersList = new List<string>();
  22. for (int i = 0; i < teamCount; i++)
  23. {
  24. TeamCreator(teams, i, membersList);
  25. }
  26. string line = Console.ReadLine();
  27. while (line != "end of assignment")
  28. {
  29. string[] memberAndTeam = line.Split(new string[] { "->" }, StringSplitOptions.RemoveEmptyEntries);
  30. string memberName = memberAndTeam[0];
  31. string desiredTeam = memberAndTeam[1];
  32. bool desiredTeamExist = false;
  33.  
  34. foreach (var team in teams)
  35. {
  36. if (team.Name == desiredTeam)
  37. {
  38. desiredTeamExist = true;
  39. }
  40. }
  41.  
  42. if (desiredTeamExist)
  43. {
  44. bool canJoin = true;
  45. // if user can join team
  46. foreach (var mList in membersList)
  47. {
  48. if (mList == memberName)
  49. {
  50. canJoin = false;
  51. Console.WriteLine($"Member {memberName} cannot join team {desiredTeam}!");
  52. }
  53. }
  54. // end of user can join
  55. if (canJoin)
  56. {
  57. foreach (var team in teams)
  58. {
  59. if (team.Name == desiredTeam)
  60. {
  61. team.MembersCount++;
  62. team.Members.Add(memberName);
  63. membersList.Add(memberName);
  64. }
  65. }
  66. }
  67. }
  68. else
  69. {
  70. Console.WriteLine($"Team {desiredTeam} does not exist!");
  71. }
  72.  
  73. line = Console.ReadLine();
  74. }
  75. foreach (var team in teams.Where(x => x.Members.Count > 0).OrderByDescending(x => x.Members.Count).ThenBy(x => x.Name))
  76. {
  77. Console.WriteLine(team.Name);
  78. Console.WriteLine("- " + team.Creator);
  79. foreach (var teamMember in team.Members.OrderBy(x => x))
  80. {
  81. Console.WriteLine("-- " + teamMember);
  82. }
  83. }
  84. Console.WriteLine("Teams to disband:");
  85. foreach (var team in teams.Where(x => x.Members.Count == 0).OrderBy(x => x.Name))
  86. {
  87. Console.WriteLine(team.Name);
  88. }
  89. }
  90.  
  91. private static void TeamCreator(List<Team> teams, int i, List<string> membersList)
  92. {
  93. string[] line = Console.ReadLine().Split('-');
  94. string creatorName = line[0];
  95. string teamToCreate = line[1];
  96. bool teamIsUnique = true;
  97.  
  98. foreach (var team in teams)
  99. {
  100. if (team.Name == teamToCreate)
  101. {
  102. teamIsUnique = false;
  103. Console.WriteLine($"Team {teamToCreate} was already created!");
  104. continue;
  105. }
  106.  
  107. if (team.Creator == creatorName)
  108. {
  109. Console.WriteLine($"{creatorName} cannot create another team!");
  110. }
  111. }
  112.  
  113. if (teamIsUnique)
  114. {
  115. Team newTeam = new Team();
  116. newTeam.Name = teamToCreate;
  117. newTeam.Creator = creatorName;
  118. newTeam.Members = new List<string>();
  119. newTeam.MembersCount = 0;
  120. teams.Add(newTeam);
  121. //membersList.Add(creatorName);
  122. Console.WriteLine($"Team {teamToCreate} has been created by {creatorName}!");
  123. }
  124. //}
  125. }
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement