Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System;
- using OlympicGames.Core.Commands.Abstracts;
- using OlympicGames.Core.Contracts;
- using OlympicGames.Olympics.Contracts;
- using OlympicGames.Olympics.Olympics;
- namespace OlympicGames.Core.Commands
- {
- public class ListOlympiansCommand : Command
- {
- public ListOlympiansCommand(IList<string> commandLine, IOlympicCommittee committee)
- : base(commandLine, committee)
- {
- }
- public override string Execute()
- {
- var output = new StringBuilder();
- string key = "firstname";
- string order = "asc";
- if (this.Committee.Olympians.Count == 0)
- {
- return "NO OLYMPIANS ADDED";
- }
- if (this.CommandParameters.Count == 0)
- {
- Console.WriteLine(($"Sorted by [{key}] in [order: {order}]"));
- this.Committee.Olympians.OrderBy(o => o.FirstName);
- }
- else if (this.CommandParameters.Count == 1)
- {
- if (this.CommandParameters[0] == "firstname" || this.CommandParameters[0] == "lastname" || this.CommandParameters[0] == "country")
- {
- key = CommandParameters[0];
- Console.WriteLine(($"Sorted by [{key}] in [order: {order}]"));
- if (key == "firstname")
- {
- this.Committee.Olympians.OrderBy(o => o.FirstName);
- }
- else if (key == "lastname")
- {
- this.Committee.Olympians.OrderBy(o => o.LastName);
- }
- else
- {
- this.Committee.Olympians.OrderBy(o => o.Country);
- }
- }
- else if (this.CommandParameters[0] == "asc" || this.CommandParameters[0] == "dsc")
- {
- order = CommandParameters[0];
- Console.WriteLine(($"Sorted by [{key}] in [order: {order}]"));
- if (order == "asc")
- {
- this.Committee.Olympians.OrderBy(o => o.FirstName);
- }
- else
- {
- this.Committee.Olympians.OrderByDescending(o => o.FirstName);
- }
- }
- }
- else if (this.CommandParameters.Count == 2)
- {
- if (this.CommandParameters[0] == "firstname" || this.CommandParameters[0] == "lastname" || this.CommandParameters[0] == "country")
- {
- key = CommandParameters[0];
- if (key == "firstname")
- {
- this.Committee.Olympians.OrderBy(o => o.FirstName);
- }
- else if (key == "lastname")
- {
- this.Committee.Olympians.OrderBy(o => o.LastName);
- }
- else
- {
- this.Committee.Olympians.OrderBy(o => o.Country);
- }
- }
- if (this.CommandParameters[0] == "asc" || this.CommandParameters[0] == "dsc")
- {
- order = CommandParameters[0];
- if (order == "asc")
- {
- this.Committee.Olympians.OrderBy(o => o.FirstName);
- }
- else
- {
- this.Committee.Olympians.OrderByDescending(o => o.FirstName);
- }
- }
- Console.WriteLine(($"Sorted by [{key}] in [order: {order}]"));
- }
- foreach (var item in Committee.Olympians)
- {
- output.AppendLine(item.Print());
- }
- return output.ToString().Trim();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement