예제 #1
0
        public TableWriter <TModel> CreateWriter <TModel>(IRowWriter rowWriter,
                                                          ITypeConverterResolver typeConverterResolver = null,
                                                          IPropertyMapper propertyMapper = null)
        {
            typeConverterResolver = typeConverterResolver ?? new DefaultTypeConverterResolver <TModel>();
            propertyMapper        = propertyMapper ?? new AutoIndexPropertyMapper();

            return(new TableWriter <TModel>(rowWriter, typeConverterResolver, propertyMapper));
        }
예제 #2
0
        private TableWriter <TModel> CreateTableWriter <TModel>(StringWriter strWriter,
                                                                IRowWriter rowWriter   = null, ITypeConverterResolver typeConvResolver = null,
                                                                IPropertyMapper mapper = null)
        {
            rowWriter        = rowWriter ?? new CsvRowWriter(strWriter);
            typeConvResolver = typeConvResolver ?? new DefaultTypeConverterResolver <TModel>();
            mapper           = mapper ?? new AutoIndexPropertyMapper();

            var tableWriter = new TableWriter <TModel>(rowWriter, typeConvResolver, mapper);

            return(tableWriter);
        }
예제 #3
0
        private static ProcessKind GetProcessKind(IProcess process)
        {
            if (process.GetType().GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IExecutableWithResult <>)))
            {
                return(ProcessKind.jobWithResult);
            }

            return(process switch
            {
                IRowReader _ => ProcessKind.reader,
                IRowWriter _ => ProcessKind.writer,
                IMutator _ => ProcessKind.mutator,
                IScope _ => ProcessKind.scope,
                IEvaluable _ => ProcessKind.producer,
                IExecutable _ => ProcessKind.job,
                _ => ProcessKind.unknown,
            });
예제 #4
0
 public TableWriter(IRowWriter rowWriter, ITypeConverterResolver typeConverterResolver, IPropertyMapper propertyMapper)
 {
     RowWriter             = rowWriter;
     TypeConverterResolver = typeConverterResolver;
     PropertyMapper        = propertyMapper;
 }
예제 #5
0
 /// <summary>Constructor for dependency injection that is used primarily for TESTING; however, a user could override how
 /// a row is written by implementing the interface.</summary>
 public CsvWriterService(IRowWriter rowWriter)
 {
     _rowWriter = rowWriter ?? throw new ArgumentNullException(nameof(rowWriter),
                                                               "Row writer cannot be null. Note that this constructor is mainly used for testing purposes.");
 }
예제 #6
0
 public ActivityMonitorMainForm()
 {
     InitializeComponent();
     systemFocusTitleListener.ForegroundTitleProbablyChanged += UpdateCurrentApplication;
     rowWriter = new MultiFileRowWriter(LogFileNamePattern);
 }