public Result <Bitmap> Create(TagsCloudSettings settings) { return(wordReader.ReadAllWords(settings.WordsPath) .Then(HandleWords) .Then(WordCounter.Count) .Map(CreateTag) .Then(tags => tags.ToArray()) .Then(painter.Colorize) .Then(visualizer.Visualize)); }
public Image Create(TagsCloudSettings settings) { var words = processors.Aggregate(wordReader.ReadAllWords(settings.WordsPath), (current, processor) => processor.Process(current)).ToArray(); var tags = WordCounter.Count(words) .Select(word => { var(font, size) = wordMeasurer.Measure(word); return(new Tag(word.Value, font, layouter.PutNextRectangle(size))); }) .ToArray(); return(visualizer.Visualize(painter.Colorize(tags))); }