public string Execute(IList <string> inputParameters) { //Validations businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyBugsExist(allTeams); //Operations var AllWorkItems = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .ToList(); StringBuilder sb = new StringBuilder(); sb.AppendLine("----ALL BUGS IN APPLICAITION----"); long workItemCounter = 1; foreach (var item in AllWorkItems) { sb.AppendLine($"{workItemCounter}. {item.GetType().Name} with name: {item.Title} "); workItemCounter++; } sb.AppendLine("---------------------------------"); var resultedAllItems = sb.ToString().Trim(); return(string.Format(resultedAllItems)); }
public string Execute(IList <string> inputParameters) { //Assign Values From List Of Parameters string statusToFilterBugFor = inputParameters[0]; //Validations var statusTypeForChecking = "Status"; inputValidator.IsNullOrEmpty(statusToFilterBugFor, statusTypeForChecking); businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyBugsExist(allTeams); //Operations var isPriorityEnumConvertable = Enum.TryParse(statusToFilterBugFor, out BugStatus bugStatusToCheckFor); inputValidator.IsEnumConvertable(isPriorityEnumConvertable, "Status"); var filteredBugsByStatus = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .Where(bug => bug.BugStatus == bugStatusToCheckFor) .ToList(); StringBuilder sb = new StringBuilder(); long workItemCounter = 1; if (filteredBugsByStatus.Count == 0) { sb.AppendLine($"There are no Bugs with: {statusToFilterBugFor} Status in the app yet!"); } else { sb.AppendLine($"----ALL BUGS WITH {statusToFilterBugFor} STATUS IN APPLICAITION----"); foreach (var item in filteredBugsByStatus) { sb.AppendLine($"{workItemCounter}. {item.GetType().Name} with name: {item.Title} "); workItemCounter++; } sb.AppendLine("---------------------------------"); } var resultedAllItems = sb.ToString().Trim(); return(string.Format(resultedAllItems)); }
public string Execute(IList <string> inputParameters) { //Assign Values From List Of Parameters string assigneeToFilterBugFor = inputParameters[0]; //Validations var assigneeTypeForChecking = "Assignee"; inputValidator.IsNullOrEmpty(assigneeToFilterBugFor, assigneeTypeForChecking); businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyBugsExist(allTeams); //Operations var filteredBugsByAssignee = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .Where(bug => bug.Assignee.Name == assigneeToFilterBugFor) .ToList(); StringBuilder sb = new StringBuilder(); long workItemCounter = 1; if (filteredBugsByAssignee.Count == 0) { sb.AppendLine($"There are no Bugs with: {assigneeToFilterBugFor} Assignee in the app yet!"); } else { sb.AppendLine($"----ALL BUGS ASSIGNED TO MEMBER: {assigneeToFilterBugFor} IN APPLICAITION----"); foreach (var item in filteredBugsByAssignee) { sb.AppendLine($"{workItemCounter}. {item.GetType().Name} with name: {item.Title} "); workItemCounter++; } sb.AppendLine("---------------------------------"); } var resultedAllItems = sb.ToString().Trim(); return(string.Format(resultedAllItems)); }
public string Execute(IList <string> inputParameters) { //Assign Values From List Of Parameters string factorToSortBy = inputParameters[0]; //Validations var factorTypeForChecking = $"{factorToSortBy}"; inputValidator.IsNullOrEmpty(factorToSortBy, factorTypeForChecking); businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyBugsExist(allTeams); //Operations var filteredBugs = new List <Bug>(); if (factorToSortBy.ToLower() == "title") { filteredBugs = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .OrderBy(bugToOrder => bugToOrder.Title) .ToList(); } else if (factorToSortBy.ToLower() == "priority") { filteredBugs = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .OrderBy(bugToOrder => bugToOrder.Priority) .ToList(); } else if (factorToSortBy.ToLower() == "severity") { filteredBugs = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .OrderBy(bugToOrder => bugToOrder.Severity) .ToList(); } else if (factorToSortBy.ToLower() == "status") { filteredBugs = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Bug)) .Select(workItem => (Bug)workItem) .OrderBy(bugToOrder => bugToOrder.BugStatus) .ToList(); } StringBuilder sb = new StringBuilder(); sb.AppendLine($"----ALL BUGS IN APPLICAITION SORTED BY {factorToSortBy}----"); long workItemCounter = 1; foreach (var item in filteredBugs) { sb.AppendLine($"{workItemCounter}. {item.GetType().Name} with name: {item.Title}"); workItemCounter++; } sb.AppendLine("---------------------------------"); var resultedAllItems = sb.ToString().Trim(); return(string.Format(resultedAllItems)); }