示例#1
0
        public void RecordField_HaveSubField_2()
        {
            RecordField field = new RecordField()
                                .AddSubField('a', "SubfieldA");

            Assert.IsTrue(field.HaveSubField('a', 'b'));
            Assert.IsFalse(field.HaveSubField('b', 'c'));
        }
示例#2
0
        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: Город на издании"
                );
            }
        }
示例#3
0
        /// <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());
        }