示例#1
0
            /// <inheritdoc/>
            public override void Process(BatchState batchState)
            {
                // Read in the individual arguments
                DatHeaderField field = Arguments[0].AsDatHeaderField();
                string         value = Arguments[1];

                // Set the header field
                batchState.DatFile.Header.SetFields(new Dictionary <DatHeaderField, string> {
                    [field] = value
                });
            }
示例#2
0
            /// <inheritdoc/>
            public override (bool, string) ValidateArguments()
            {
                if (Arguments.Count < 2 || Arguments.Count > 4)
                {
                    string message = $"Invoked {Name} and expected between 2-4 arguments, but {Arguments.Count} arguments were provided";
                    return(false, message);
                }

                // Read in the individual arguments
                DatHeaderField filterDatHeaderField = Arguments[0].AsDatHeaderField();
                MachineField   filterMachineField   = Arguments[0].AsMachineField();
                DatItemField   filterDatItemField   = Arguments[0].AsDatItemField();
                bool?          filterRemove         = false;

                if (Arguments.Count >= 3)
                {
                    filterRemove = Arguments[2].AsYesNo();
                }
                bool?filterPerMachine = false;

                if (Arguments.Count >= 4)
                {
                    filterPerMachine = Arguments[3].AsYesNo();
                }

                // If we had an invalid input, log and continue
                if (filterDatHeaderField == DatHeaderField.NULL &&
                    filterMachineField == MachineField.NULL &&
                    filterDatItemField == DatItemField.NULL)
                {
                    string message = $"{Arguments[0]} was an invalid field name";
                    return(false, message);
                }
                if (filterRemove == null)
                {
                    string message = $"{Arguments[2]} was an invalid true/false value";
                    return(false, message);
                }
                if (filterPerMachine == null)
                {
                    string message = $"{Arguments[3]} was an invalid true/false value";
                    return(false, message);
                }

                return(true, null);
            }
示例#3
0
            /// <inheritdoc/>
            public override (bool, string) ValidateArguments()
            {
                if (Arguments.Count != 2)
                {
                    string message = $"Invoked {Name} but no arguments were provided";
                    return(false, message);
                }

                DatHeaderField field = Arguments[0].AsDatHeaderField();

                // If we had an invalid input, log and continue
                if (field == DatHeaderField.NULL)
                {
                    string message = $"{Arguments[0]} was an invalid field name";
                    return(false, message);
                }

                return(true, null);
            }
示例#4
0
        /// <summary>
        /// Set remover from a value
        /// </summary>
        /// <param name="field">Key for the remover to be set</param>
        public bool SetRemover(string field)
        {
            // If the key is null or empty, return false
            if (string.IsNullOrWhiteSpace(field))
            {
                return(false);
            }

            // If we have a DatHeader field
            DatHeaderField datHeaderField = field.AsDatHeaderField();

            if (datHeaderField != DatHeaderField.NULL)
            {
                DatHeaderFields.Add(datHeaderField);
                return(true);
            }

            return(false);
        }
示例#5
0
        public void AsDatHeaderFieldTest(string field, DatHeaderField expected)
        {
            DatHeaderField actual = field.AsDatHeaderField();

            Assert.Equal(expected, actual);
        }