Advertisement
AlexTasev

09 Teamwork Projects

Jun 16th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace _09_TeamworkProjects
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             List<Team> teams = new List<Team>();
  12.  
  13.             int numberOfTeams = int.Parse(Console.ReadLine());
  14.  
  15.             for (int i = 0; i < numberOfTeams; i++)
  16.             {
  17.                 string[] input = Console.ReadLine().Split("-");
  18.  
  19.                 string creator = input[0];
  20.                 string teamName = input[1];
  21.  
  22.                 Team team = new Team(teamName, creator, new List<string>());
  23.  
  24.                 if (teams.Select(t => t.Name).Contains(team.Name) == false)
  25.                 {
  26.                     if (teams.Select(t => t.Creator).Contains(team.Creator) == false)
  27.                     {
  28.                         Console.WriteLine($"Team {teamName} has been created by {creator}!");
  29.  
  30.                         teams.Add(team);
  31.                     }
  32.                     else
  33.                     {
  34.                         Console.WriteLine($"{creator} cannot create another team!");
  35.                     }
  36.                 }
  37.  
  38.                 else
  39.                 {
  40.                     Console.WriteLine($"Team {teamName} was already created!");
  41.                 }
  42.             }
  43.  
  44.             while (true)
  45.             {
  46.                 string input = Console.ReadLine();
  47.  
  48.                 if (input == "end of assignment")
  49.                 {
  50.                     break;
  51.                 }
  52.  
  53.                 string[] tokens = input.Split("->");
  54.  
  55.                 string currentMember = tokens[0];
  56.                 string teamToJoin = tokens[1];
  57.  
  58.                 if (teams.Any(t => t.Name.Contains(teamToJoin)) == false)
  59.                 {
  60.                     Console.WriteLine($"Team {teamToJoin} does not exist!");
  61.                 }
  62.  
  63.                 else if (teams.Select(t => t.Members).Any(t => t.Contains(currentMember)) ||
  64.                     teams.Select(t => t.Creator).Contains(currentMember))
  65.                 {
  66.                     Console.WriteLine($"Member {currentMember} cannot join team {teamToJoin}!");
  67.                 }
  68.  
  69.                 else
  70.                 {
  71.                     Team exist = teams.First(t => t.Name.Equals(teamToJoin));
  72.                     exist.Members.Add(currentMember);
  73.                 }
  74.             }
  75.  
  76.             List<Team> filledTeams = teams.Where(t => t.Members.Count > 0).ToList();
  77.             List<Team> emptyTeams = teams.Where(t => t.Members.Count == 0).ToList();
  78.  
  79.             foreach (var team in filledTeams.OrderByDescending(t=> t.Members.Count).ThenBy(t=> t.Name))
  80.             {
  81.                 Console.WriteLine($"{team.Name}");
  82.                 Console.WriteLine($"- {team.Creator}");
  83.  
  84.                 foreach (var member in team.Members.OrderBy(m => m))
  85.                 {
  86.                     Console.WriteLine($"-- {member}");
  87.                 }
  88.             }
  89.  
  90.             Console.WriteLine("Teams to disband:");
  91.  
  92.             foreach (var team in emptyTeams.OrderBy(t => t.Name))
  93.             {
  94.                 Console.WriteLine($"{team.Name}");
  95.             }
  96.         }
  97.     }
  98.  
  99.     class Team
  100.     {
  101.         public Team(string name, string creator, List<string> members)
  102.         {
  103.             Name = name;
  104.             Creator = creator;
  105.             Members = members;
  106.         }
  107.  
  108.         public string Name { get; set; }
  109.         public string Creator { get; set; }
  110.         public List<string> Members { get; set; }
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement