示例#1
0
        public void RecordField_GetSubFieldValue_1()
        {
            const string expected1 = "SubfieldA1";
            const string expected2 = "SubfieldA2";
            RecordField  field     = new RecordField();
            SubField     subField1 = new SubField('a', expected1);

            field.SubFields.Add(subField1);
            SubField subField2 = new SubField('a', expected2);

            field.SubFields.Add(subField2);
            Assert.AreEqual(expected1, field.GetSubFieldValue('a', 0));
            Assert.AreEqual(expected2, field.GetSubFieldValue('a', 1));
            Assert.IsNull(field.GetSubFieldValue('a', 2));
            Assert.IsNull(field.GetSubFieldValue('b', 0));
        }
示例#2
0
        public void ProcessRecord
        (
            [NotNull] MarcRecord record,
            [NotNull] string newSigla,
            [NotNull] string number
        )
        {
            RecordField field = record.Fields
                                .GetField(910)
                                .GetField('b', number)
                                .FirstOrDefault();

            if (ReferenceEquals(field, null))
            {
                Output.WriteLine("{0}: no 910", number);

                return;
            }

            string existingSigla = field.GetSubFieldValue('d', 0);

            if (newSigla.SameString(existingSigla))
            {
                Output.Write("{0} ", record.Mfn);
            }
            else
            {
                if (field.GetSubFieldValue('a', 0).SameString("5"))
                {
                    field.SetSubField('a', "0");
                }
                field.SetSubField('d', newSigla);

                Connection.WriteRecord(record, false, true);
                Output.Write("[{0}] ", record.Mfn);
            }
        }