コード例 #1
0
        public static void Main(string[] args)
        {
            var logPath = "application.log";

            ILogger logger = new AggregatedLogger(
                new FileLogger(logPath),
                new ConsoleLogger()
                );

            IConsoleManager consoleManager = new ConsoleManager();
            var             environment    = new AppEnvironment(logger, consoleManager);

            var figures = new List <Figure>();

            try
            {
                var figure = environment.Parse(args);
                figures.Add(figure);

                var extraFigures = environment.RequestExtraFigures();
                figures.AddRange(extraFigures);

                var sortedAreas = figures
                                  .OrderByDescending(f => f.Area)
                                  .ToList();

                sortedAreas.ForEach(f => consoleManager.WriteLine($"[{f.Name}]: {f.Area} cm"));
            }
            catch (Exception ex)
            {
                logger.LogInformation(ex.Message);
            }
        }
コード例 #2
0
        public static void Main(string[] args)
        {
            var logPath = "application.log";

            ILogger logger = new AggregatedLogger
                             (
                new FileLogger(logPath),
                new ConsoleLogger()
                             );

            var environment = new AppEnvironment(logger);

            try
            {
                if (!Validator.IsArgumentsValid(args))
                {
                    throw new FormatException(
                              $"Input must be like <FilePath> <SearchString>;{Environment.NewLine}" +
                              $"<FilePath> <SearchString> <ReplaceableString");
                }

                var inputData = environment.Parse(args);

                environment.Run(inputData);
            }
            catch (Exception ex)
            {
                logger.LogInformation(ex.Message);
            }
        }
コード例 #3
0
        public void AllLoggersShouldLog()
        {
            TestLogger       loggerOne = Substitute.ForPartsOf <TestLogger>();
            TestLogger       loggerTwo = Substitute.ForPartsOf <TestLogger>();
            AggregatedLogger logger    = new AggregatedLogger(loggerOne, loggerTwo);

            logger.Write("Foo");
            ITable table = Table.Create(1);

            logger.Write(table);

            loggerOne.Received(1).TestWriteInternal(WriteStyle.Current, "Foo");
            loggerTwo.Received(1).TestWriteInternal(WriteStyle.Current, "Foo");
            loggerOne.Received(1).Write(table);
            loggerTwo.Received(1).Write(table);
        }
コード例 #4
0
        public static void Main(string[] args)
        {
            var logPath = "application.log";

            var logger = new AggregatedLogger(
                new FileLogger(logPath),
                new ConsoleLogger()
                );

            try
            {
                if (!Validator.IsParametersValid(args))
                {
                    logger.LogInformation("Input data must be in format <LocalizationType> <number>");

                    return;
                }

                var languageNumbersDescriptors = new ILanguageNumbersDescriptor[]
                {
                    new EnLoсalizationNumbers(),
                    new RuLocalizationNumbers(),
                    new UaLocalizationNumbers()
                };

                var inputDataParser = new InputDataParser(languageNumbersDescriptors, logger);
                var inputData       = inputDataParser.GetInputData(args);

                var localization = languageNumbersDescriptors.First(l => l.Name == inputData.LocalizationName);

                var result = NumberConverter.ConvertToString(inputData.Number, localization);

                logger.LogInformation($"Result: {result}");
            }
            catch (Exception ex)
            {
                logger.LogInformation(ex.Message);
            }
        }
コード例 #5
0
        public AppEnvironment(
            string logPath = "application.log"
            )
        {
            Logger = new AggregatedLogger
                     (
                new FileLogger(logPath),
                new ConsoleLogger()
                     );

            InputDataParsers = new IParser[]
            {
                new SequenceParser(),
                new FibonacciParser()
            };

            MathOperations = new IOperation[]
            {
                new FibonacciOperation(),
                new SequenceOperation()
            };
        }
コード例 #6
0
        public static void Main(string[] args)
        {
            var logPath = "application.log";

            var logger = new AggregatedLogger(
                new FileLogger(logPath),
                new ConsoleLogger()
                );

            IConsoleManager consoleManager = new ConsoleManager();
            var             environment    = new AppEnvironment(consoleManager);

            try
            {
                var envelopes = environment.Parse(args);

                var analysis = environment.CheckEnvelopes(envelopes);

                do
                {
                    consoleManager.WriteLine($"{analysis}");

                    envelopes = environment.RequestExtraEnvelopes();

                    if (envelopes == null)
                    {
                        break;
                    }

                    analysis = environment.CheckEnvelopes(envelopes);
                }while (envelopes.Any());
            }
            catch (Exception ex)
            {
                logger.LogInformation(ex.Message);
            }
        }
コード例 #7
0
            public ConsoleTaskLoggers(ITask task, IArgumentProvider arguments)
            {
                if (arguments.GetOption <bool?>(StandardOptions.Clipboard) ?? task.GetOptionDefault <bool>(StandardOptions.Clipboard[0]))
                {
                    _richTextLogger    = new RichTextLogger();
                    _csvLogger         = new CsvLogger();
                    _textLogger        = new TextLogger();
                    _spreadsheetLogger = new XmlSpreadsheetLogger();
                    _aggregatedLogger  = new AggregatedLogger(
                        ConsoleLogger.Instance,
                        _richTextLogger,
                        _spreadsheetLogger,
                        _csvLogger,
                        _textLogger);

                    RegisterLogger(LoggerType.Result, _aggregatedLogger);
                }
                else
                {
                    RegisterLogger(LoggerType.Result, ConsoleLogger.Instance);
                }

                RegisterLogger(LoggerType.Status, ConsoleLogger.Instance);
            }
コード例 #8
0
        public void EmptyArrayShouldNotThow()
        {
            AggregatedLogger logger = new AggregatedLogger(new ILogger[0]);

            logger.Write("Foo");
        }