Пример #1
0
        static void DumpTerm
        (
            [NotNull] IrbisConnection connection,
            [NotNull] TermInfo term
        )
        {
            Console.WriteLine(term.Text);

            PostingParameters parameters = new PostingParameters
            {
                Database = connection.Database,
                Term     = term.Text
            };

            TermPosting[] postings = connection.ReadPostings(parameters);
            Console.WriteLine("\tPostings: {0}", postings.Length);
            foreach (TermPosting posting in postings)
            {
                Console.WriteLine
                (
                    "\tMFN={0} Tag={1} Occ={2} Count={3}",
                    posting.Mfn,
                    posting.Tag,
                    posting.Occurrence,
                    posting.Count
                );

                try
                {
                    MarcRecord  record = connection.ReadRecord(posting.Mfn);
                    RecordField field  = record.Fields
                                         .GetField(posting.Tag)
                                         .GetOccurrence(posting.Occurrence - 1);
                    if (ReferenceEquals(field, null))
                    {
                        Console.WriteLine();
                    }
                    else
                    {
                        Console.WriteLine
                        (
                            "\t{0}",
                            field.ToText()
                        );
                        Console.WriteLine();
                    }
                }
                catch
                {
                    // Nothing to do here
                }
            }
            Console.WriteLine();
        }
Пример #2
0
        public PostingParameters GatherParameters()
        {
            PostingParameters result = new PostingParameters
            {
                Database         = Database,
                FirstPosting     = FirstPosting,
                Format           = Format,
                NumberOfPostings = NumberOfPostings,
                Term             = Term,
                ListOfTerms      = ListOfTerms
            };

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Apply <see cref="PostingParameters"/>
        /// to the command.
        /// </summary>
        public void ApplyParameters
        (
            [NotNull] PostingParameters parameters
        )
        {
            Sure.NotNull(parameters, nameof(parameters));

            Database         = parameters.Database;
            FirstPosting     = parameters.FirstPosting;
            Format           = parameters.Format;
            NumberOfPostings = parameters.NumberOfPostings;
            Term             = parameters.Term;
            ListOfTerms      = parameters.ListOfTerms;
        }
Пример #4
0
        public void ReadPostings_Test3()
        {
            IrbisConnection connection
                = Connection.ThrowIfNull("Connection");

            TermParameters termParameters = new TermParameters
            {
                Database      = "IBIS",
                NumberOfTerms = 3,
                ReverseOrder  = false,
                StartTerm     = "K=",
                Format        = null
            };

            TermInfo[] terms = connection.ReadTerms
                               (
                termParameters
                               );

            PostingParameters postingParameters = new PostingParameters
            {
                Database    = "IBIS",
                ListOfTerms = terms.ThrowIfNullOrEmpty("terms")
                              .Select(t => t.Text).ToArray(),
                NumberOfPostings = 3,
                Format           = IrbisFormat.Brief
            };

            TermPosting[] postings = Connection.ReadPostings
                                     (
                postingParameters
                                     );

            string text = string.Join
                          (
                "| ",
                postings.Select(p => p.ToString())
                          );

            Write(text);
        }