public string SortText(string text, TextSortOption textSortOption) { var paragraphs = this.paragraphConverter.ConvertToParagraphs(text); var sortingStrategy = this.sortingStrategyFactory.Create(textSortOption); var sortedParagraphs = sortingStrategy.Sort(paragraphs); return(this.paragraphConverter.ConvertToString(sortedParagraphs)); }
public ISortingStrategy Create(TextSortOption textSortOption) { switch (textSortOption) { case TextSortOption.ByAlphabeticOrder: return(new ByAlphabeticOrderSortingStrategy()); case TextSortOption.ByReversedAlphabeticOrder: return(new ByReversedAlphabeticOrderSortingStrategy()); case TextSortOption.ByReversedOrder: return(new ByReversedOrderSortingStrategy()); case TextSortOption.Unknown: default: throw new TextEngineException("Unable to apply sorting strategy due to unknown sorting option"); } }