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)); }
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); } }