Ejemplo n.º 1
0
        private static IEnumerable <Selection> ReadSelectionFromOptions(SelectOptions options)
        {
            ITimestampStringConverter timestampConverter = TimestampStringConverterResolver.Default.Resolve(options.TimestampFormat);

            var selection = Selection.Parse(options.Name, options.FromTimestamp, options.ToTimestamp, timestampConverter);

            return(new[] { selection });
        }
Ejemplo n.º 2
0
        private static void Configure(SelectContext context, SelectOptions options)
        {
            // read from options or config file
            var selections = Enumerable.Empty <Selection>();

            if (String.IsNullOrWhiteSpace(options.ConfigFilePath))
            {
                selections = ReadSelectionFromOptions(options);
            }
            else
            {
                selections = ReadSelectionsFromConfigFile(context, options.ConfigFilePath);
            }

            if (selections.Any())
            {
                var observers = CreateObserversForSelections(selections, options).ToList();

                observers.ForEach(context.Observers.Add);

                context.Selection = Selection.Union(selections);
            }
        }
Ejemplo n.º 3
0
        private static IEnumerable <FilterObserver> CreateObserversForSelections(IEnumerable <Selection> selections, SelectOptions options)
        {
            HashSet <string>         paths     = new HashSet <string>();
            List <FilteringObserver> observers = new List <FilteringObserver>();

            foreach (var selection in selections)
            {
                string path = options.OutputFilePath;
                string name = (selection.Name ?? String.Empty).Trim();

                if (String.IsNullOrWhiteSpace(path) && String.IsNullOrWhiteSpace(name) == false)
                {
                    path = options.InputFilePath;
                }

                if (String.IsNullOrWhiteSpace(path) == false)
                {
                    if (path.Contains("{name}"))
                    {
                        path = path.Replace("{name}", name);
                    }
                    else if (String.IsNullOrWhiteSpace(name) == false)
                    {
                        path = Path.GetFileNameWithoutExtension(path) + $".{name}" + Path.GetExtension(path);
                    }
                }

                // use only unique paths
                if (path != options.InputFilePath && paths.Add(path))
                {
                    var output = UXI.Filters.Common.FileHelper.DescribeOutput(
                        path,
                        options.InputFileFormat,
                        options.DefaultInputFileFormat,
                        typeof(TimestampedDataPayload),
                        (String.IsNullOrWhiteSpace(path)) ? Console.Out : TextWriter.Null             // use Console.Out for empty path only
                        );

                    observers.Add(new FilteringObserver(selection, output));
                }
            }

            return(observers);
        }