Advertisement
anizko

05. Teamwork projects

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