public void RecordField_HaveSubField_2() { RecordField field = new RecordField() .AddSubField('a', "SubfieldA"); Assert.IsTrue(field.HaveSubField('a', 'b')); Assert.IsFalse(field.HaveSubField('b', 'c')); }
private void CheckField ( RecordField field ) { MustNotContainText(field); SubField city = field.GetFirstSubField('a'); SubField publisher = field.GetFirstSubField('c'); SubField year = field.GetFirstSubField('d'); if (city != null) { if (Utilities.SafeContains(city.Text, ",", ";")) { AddDefect ( field, city, 1, "Несколько городов в одном подполе 210^a" ); } if (Utilities.SafeContains(city.Text, "б.")) { AddDefect ( field, city, 1, "Город Б. М. в подполе 210^a" ); } else if (Utilities.SafeContains(city.Text, ".")) { AddDefect ( field, city, 1, "Город с сокращением в подполе 210^a" ); } } if (publisher != null) { if (Utilities.SafeContains(publisher.Text, ",", ";")) { AddDefect ( field, publisher, 1, "Несколько издательств в одном подполе 210^c" ); } if (Utilities.SafeContains(publisher.Text, "б.")) { AddDefect ( field, publisher, 1, "Издательство Б. И. в подполе 210^c" ); } else if (Utilities.SafeContains(publisher.Text, ".")) { AddDefect ( field, publisher, 1, "Издательство с сокращением в подполе 210^c" ); } } if (year != null) { if (Utilities.SafeContains(year.Text, "б.")) { AddDefect ( field, year, 1, "Год издания Б. Г. в подполе 210^d" ); } } if (field.HaveNotSubField('a') && field.HaveSubField('4')) { AddDefect ( field, 1, "Город введен в подполе 200^4: Город на издании" ); } }
/// <inheritdoc cref="IrbisRule.CheckRecord"/> public override RuleReport CheckRecord ( RuleContext context ) { BeginCheck(context); RecordField[] fields = GetFields(); if (fields.Length == 0) { AddDefect ( "200", 10, "Не заполнено поле 200: Заглавие" ); } else if (fields.Length != 1) { AddDefect ( "200", 10, "Повторяется поле 200: Заглавие" ); } else { RecordField field = fields[0]; if (IsSpec()) { if (field.HaveNotSubField('v')) { AddDefect ( field, 10, "Отсутствует подполе 200^v: " + "Обозначение и номер тома" ); } } else { if (field.HaveSubField('v')) { AddDefect ( field, 10, "Присутствует подполе 200^v: " + "Обозначение и номер тома" ); } if (field.HaveNotSubField('a')) { AddDefect ( field, 10, "Отсутстсвует подполе 200^a: Заглавие" ); } } } return(EndCheck()); }