nassss

Untitled

Feb 1st, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using OlympicGames.Core.Commands.Abstracts;
  3. using OlympicGames.Core.Contracts;
  4. using OlympicGames.Olympics.Contracts;
  5. using System.Linq;
  6. using System.Text;
  7.  
  8. namespace OlympicGames.Core.Commands
  9. {
  10. public class ListOlympiansCommand : Command
  11. {
  12. public ListOlympiansCommand(IList<string> commandLine, IOlympicCommittee committee)
  13. : base(commandLine, committee)
  14. {
  15. }
  16.  
  17. private List<IOlympian> Print(string name = "firstname", string order = "asc")
  18. {
  19. var orderedList = new List<IOlympian>();
  20. switch (CommandParameters.Count)
  21. {
  22. case 1:
  23. if (Equals(name, "firstname"))
  24. {
  25. return orderedList = Committee.Olympians.OrderBy(x => x.FirstName).ToList();
  26. }
  27.  
  28. if (Equals(name, "lastname"))
  29. {
  30. return orderedList = Committee.Olympians.OrderBy(x => x.LastName).ToList();
  31. }
  32. return orderedList = Committee.Olympians.OrderBy(x => x.Country).ToList();
  33. case 2:
  34. if (Equals(order, "asc"))
  35. {
  36. if (Equals(name, "firstname"))
  37. {
  38. return orderedList = Committee.Olympians.OrderBy(x => x.FirstName).ToList();
  39. }
  40. if (Equals(name, "lastname"))
  41. {
  42. return orderedList = Committee.Olympians.OrderBy(x => x.LastName).ToList();
  43. }
  44. return orderedList = Committee.Olympians.OrderBy(x => x.Country).ToList();
  45. }
  46.  
  47. if (Equals(name, "firstname"))
  48. {
  49. return orderedList = Committee.Olympians.OrderByDescending(x => x.FirstName).ToList();
  50. }
  51. if (Equals(name, "lastname"))
  52. {
  53. return orderedList = Committee.Olympians.OrderByDescending(x => x.LastName).ToList();
  54. }
  55. return orderedList = Committee.Olympians.OrderByDescending(x => x.Country).ToList();
  56. default: return Committee.Olympians.OrderBy(x => x.FirstName).ToList();
  57. }
  58. }
  59.  
  60. public override string Execute()
  61. {
  62. var count = CommandParameters.Count;
  63.  
  64. var result = count switch
  65. {
  66. 1 => Print(CommandParameters[0]),
  67. 2 => Print(CommandParameters[0], CommandParameters[2]),
  68. _ => Print()
  69. };
  70. if (Equals(result.Count, 0))
  71. {
  72. return "NO OLYMPIANS ADDED";
  73. }
  74. var sb = new StringBuilder();
  75. foreach (var olympian in result)
  76. {
  77. sb.AppendLine(olympian.Print());
  78. }
  79.  
  80. return sb.ToString().Trim();
  81. }
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment