Esempio n. 1
0
        /// <summary>
        /// Разбор записи.
        /// </summary>
        public static MagazineInfo Parse
        (
            IrbisRecord record
        )
        {
            if (ReferenceEquals(record, null))
            {
                throw new ArgumentNullException("record");
            }

            MagazineInfo result = new MagazineInfo
            {
                Index        = record.FM("903"),
                Title        = record.FM("200", 'a'),
                SubTitle     = record.FM("200", 'e'),
                Cumulation   = MagazineCumulation.Parse(record),
                SeriesNumber = record.FM("923", 'h'),
                SeriesTitle  = record.FM("923", 'i'),
                Mfn          = record.Mfn
            };

            if (string.IsNullOrEmpty(result.Title) ||
                string.IsNullOrEmpty(result.Index)
                //|| string.IsNullOrEmpty(result.MagazineKind)
                //|| string.IsNullOrEmpty(result.MagazineType)
                )
            {
                return(null);
            }

            return(result);
        }
        /// <summary>
        /// Разбор поля.
        /// </summary>
        public static MagazineCumulation Parse
        (
            RecordField field
        )
        {
            if (ReferenceEquals(field, null))
            {
                throw new ArgumentNullException("field");
            }

            MagazineCumulation result = new MagazineCumulation
            {
                Year     = field.GetFirstSubFieldText('q'),
                Volume   = field.GetFirstSubFieldText('f'),
                Place    = field.GetFirstSubFieldText('d'),
                Numbers  = field.GetFirstSubFieldText('h'),
                Complect = field.GetFirstSubFieldText('k')
            };

            return(result);
        }