Advertisement
MeliDragon

Untitled

Apr 14th, 2023
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using TaskManager.Core.Interfaces;
  7. using TaskManager.Models;
  8. using TaskManager.Models.Contracts;
  9. using TaskManager.Models.Enums;
  10.  
  11. namespace TaskManager.Commands
  12. {
  13. public class ListTasksWithAssigneeCommand : BaseCommand
  14. {
  15. public const int ExpectedNumberOfArguments = 1;
  16.  
  17. public ListTasksWithAssigneeCommand(IList<string> commandParameters, IRepository repository)
  18. : base(commandParameters, repository)
  19. {
  20. }
  21.  
  22. public override string Execute()
  23. {
  24. string comand = CommandParameters[0];
  25. StringBuilder taskDisplay = new StringBuilder();
  26. var tasksTypeBug = Repository.Tasks.OfType<Bug>().ToList();
  27. var tasksTypeStory = Repository.Tasks.OfType<Story>().ToList();
  28. switch (comand)
  29. {
  30. case "Active":
  31. tasksTypeBug = tasksTypeBug.
  32. Where(bug => bug.Status == BugStatusType.Active && bug.Assignee.TeamAssignedTo != null).
  33. OrderBy(bug => bug.Title).
  34. ToList();
  35.  
  36. foreach(var bug in tasksTypeBug)
  37. {
  38. taskDisplay.Append(bug);
  39. }
  40. break;
  41. case "Fixed":
  42. tasksTypeBug = tasksTypeBug.
  43. Where(bug => bug.Status == BugStatusType.Fixed && bug.Assignee.TeamAssignedTo != null).
  44. OrderBy(bug => bug.Title).
  45. ToList();
  46.  
  47. foreach (var bug in tasksTypeBug)
  48. {
  49. taskDisplay.Append(bug);
  50. }
  51. break;
  52. case "NotDone":
  53. tasksTypeStory = tasksTypeStory.
  54. Where(story => story.Status == StoryStatusType.NotDone && story.Assignee.TeamAssignedTo != null).
  55. OrderBy(story => story.Title).
  56. ToList();
  57.  
  58. foreach (var story in tasksTypeStory)
  59. {
  60. taskDisplay.Append(story);
  61. }
  62. break;
  63. case "InProgres":
  64. tasksTypeStory = tasksTypeStory.
  65. Where(story => story.Status == StoryStatusType.InProgress && story.Assignee.TeamAssignedTo != null).
  66. OrderBy(story => story.Title).
  67. ToList();
  68.  
  69. foreach (var story in tasksTypeStory)
  70. {
  71. taskDisplay.Append(story);
  72. }
  73. break;
  74. case "Done":
  75. tasksTypeStory = tasksTypeStory.
  76. Where(story => story.Status == StoryStatusType.Done && story.Assignee.TeamAssignedTo != null).
  77. OrderBy(story => story.Title).
  78. ToList();
  79.  
  80. foreach (var story in tasksTypeStory)
  81. {
  82. taskDisplay.Append(story);
  83. }
  84. break;
  85. default:
  86. tasksTypeBug = tasksTypeBug.
  87. Where(bug => bug.Assignee.Name == comand && bug.Assignee.TeamAssignedTo != null).
  88. OrderBy(bug => bug.Title).
  89. ToList();
  90.  
  91. tasksTypeStory = tasksTypeStory.
  92. Where(story => story.Assignee.Name == comand && story.Assignee.TeamAssignedTo != null).
  93. OrderBy(story => story.Title).
  94. ToList();
  95.  
  96. foreach(var story in tasksTypeStory)
  97. {
  98. taskDisplay.Append(story);
  99. }
  100.  
  101. foreach(var bug in tasksTypeBug)
  102. {
  103. taskDisplay.Append(bug);
  104. }
  105.  
  106. break;
  107. }
  108.  
  109. return taskDisplay.ToString().Trim();
  110. }
  111. }
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement