Abstraction for picking a strategy to process the data files. Implement this strategy class and plugin via the FileProcessor to automate file processing with a different state machine or with a different implementation logic.
        /// <summary>
        /// Ctor that explicitly picks a data processing class
        /// </summary>
        /// <param name="formInstance">Form instance. Required for writing log messages (on UI thread)</param>
        /// <param name="dataFlowNetworkObj">Data processing class object</param>
        public FileProcessor(DIXFRecurringJobsProcessor formInstance, DataFlowNetworkStrategy dataFlowNetworkObj)
        {
            // Form context
            this.form = formInstance;

            this.DataNetworkStrategy = dataFlowNetworkObj;
        }
        /// <summary>
        /// Ctor that explicitly picks a data processing class
        /// </summary>
        /// <param name="formInstance">Form instance. Required for writing log messages (on UI thread)</param>
        /// <param name="dataFlowNetworkObj">Data processing class object</param>
        public FileProcessor(DIXFRecurringJobsProcessor formInstance, DataFlowNetworkStrategy dataFlowNetworkObj)
        {
            // Form context
            this.form = formInstance;

            this.DataNetworkStrategy = dataFlowNetworkObj;
        }
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="formInstance">Form instance. Required for writing log messages (on UI thread)</param>
        public FileProcessor(DIXFRecurringJobsProcessor formInstance)
        {
            // Form context
            this.form = formInstance;

            // Set data processing class
            this.DataNetworkStrategy = new DefaultDataFlowNetwork(this.form);
        }