Advertisement
Guest User

TeamProjects

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