AleksandarKostadinov

09. TeamworkProjects

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