public string Execute(IList <string> inputParameters) { //Validations businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyFeedbacksExist(allTeams); //Operations var AllWorkItems = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Feedback)) .ToList(); StringBuilder sb = new StringBuilder(); sb.AppendLine("----ALL FEEDBACKS 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 statusToFilterFeedbacksFor = inputParameters[0]; //Validations var statusTypeForChecking = "Status"; inputValidator.IsNullOrEmpty(statusToFilterFeedbacksFor, statusTypeForChecking); businessLogicValidator.ValidateIfAnyWorkItemsExist(allTeams); businessLogicValidator.ValidateIfAnyFeedbacksExist(allTeams); //Operations var isStatusEnumConvertable = Enum.TryParse(statusToFilterFeedbacksFor, out FeedbackStatus feedbacksStatusToCheckFor); inputValidator.IsEnumConvertable(isStatusEnumConvertable, "Status"); var filteredFeedbacksbyStatus = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Feedback)) .Select(workItem => (Feedback)workItem) .Where(story => story.FeedbackStatus == feedbacksStatusToCheckFor) .ToList(); StringBuilder sb = new StringBuilder(); long workItemCounter = 1; if (filteredFeedbacksbyStatus.Count == 0) { sb.AppendLine($"There are No Feedbacks with Staus {statusToFilterFeedbacksFor} in the app yet!"); } else { sb.AppendLine($"----ALL FEEDBACKS WITH {statusToFilterFeedbacksFor} STATUS IN APPLICAITION----"); foreach (var item in filteredFeedbacksbyStatus) { 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.ValidateIfAnyFeedbacksExist(allTeams); //Operations var filteredFeedbacks = new List <Feedback>(); if (factorToSortBy.ToLower() == "title") { filteredFeedbacks = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Feedback)) .Select(workItem => (Feedback)workItem) .OrderBy(storyToOrder => storyToOrder.Title) .ToList(); } else if (factorToSortBy.ToLower() == "rating") { filteredFeedbacks = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Feedback)) .Select(workItem => (Feedback)workItem) .OrderBy(storyToOrder => storyToOrder.Rating) .ToList(); } else if (factorToSortBy.ToLower() == "status") { filteredFeedbacks = allTeams.AllTeamsList.Values .SelectMany(x => x.Boards) .SelectMany(x => x.WorkItems) .Where(x => x.GetType() == typeof(Feedback)) .Select(workItem => (Feedback)workItem) .OrderBy(storyToOrder => storyToOrder.FeedbackStatus) .ToList(); } StringBuilder sb = new StringBuilder(); sb.AppendLine($"----ALL FEEDBACKS IN APPLICAITION SORTED BY {factorToSortBy}----"); long workItemCounter = 1; foreach (var item in filteredFeedbacks) { sb.AppendLine($"{workItemCounter}. {item.GetType().Name} with name: {item.Title} "); workItemCounter++; } sb.AppendLine("---------------------------------"); var resultedAllItems = sb.ToString().Trim(); return(string.Format(resultedAllItems)); }