Exemple #1
0
        private static Result <Bitmap> OnCallAction(ConsoleParsedOptions parsedOptions)
        {
            var resultOptions = Result.Of(() => new BuildOptions(parsedOptions));

            if (!resultOptions.IsSuccess)
            {
                return(Result.Fail <Bitmap>(resultOptions.Error));
            }

            var options = resultOptions.GetValueOrThrow();

            return(resultOptions
                   .Then(BuildContainer)
                   .Then(container =>
            {
                var fullPath = options.InputFilePath;
                var size = new Size(options.Width, options.Height);
                var format = container.Resolve <CloudSettings>();

                return container.Resolve <CloudBuilder <Bitmap> >()
                .CreateTagCloudRepresentation(fullPath, size, format);
            })
                   .Then(image => Result.Of(() =>
            {
                image.Save(options.OutputFilePath, ImageFormatter.ParseImageFormat(options.ImageExtension));
                return image;
            })));
        }
Exemple #2
0
        public BuildOptions(ConsoleParsedOptions parsedOptions)
        {
            InputFilePath  = parsedOptions.InputFilePath;
            OutputFilePath = parsedOptions.OutputFilePath;
            ImageExtension = parsedOptions.ImageExtension;

            if (parsedOptions.Width < 0)
            {
                throw new ArgumentOutOfRangeException($"Image width can't be less than zero");
            }
            if (parsedOptions.Height < 0)
            {
                throw new ArgumentOutOfRangeException($"Image heigth can't be less than zero");
            }
            Width  = parsedOptions.Width;
            Height = parsedOptions.Height;

            BackgroundColor = ColorsHexConverter.CreateFromHex(parsedOptions.BackgroundColor);
            ColorsPalette   = ColorsHexConverter.CreateFromHexEnumerable(parsedOptions.ColorsPalette);

            SpiralStep = parsedOptions.SpiralStep;

            FontFamily         = new FontFamily(parsedOptions.FontFamilyName);
            FontSizeMultiplier = parsedOptions.FontSizeMultiplier;
            if (parsedOptions.MaximalFontSize <= 0)
            {
                throw new ArgumentOutOfRangeException($"Maximal font size can't be less or equal than zero");
            }
            MaximalFontSize = parsedOptions.MaximalFontSize;

            BoringPartsOfSpeech = parsedOptions.BoringPartsOfSpeech.Split(' ');
            BoringWords         = parsedOptions.BoringWords.Split(' ');
        }