Пример #1
0
        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));
        }
Пример #3
0
        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));
        }