ZhivkoPetkov

Classes- Teamwork Projects

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