Example #1
0
        // ==========================================================

        static void DumpTerm
        (
            [NotNull] string term
        )
        {
            MarcRecord[] records = connection.SearchRead("\"" + term + "\"");
            Console.WriteLine
            (
                "{0} MFN={1}",
                term,
                StringUtility.Join(", ", records.Select(r => r.Mfn))
            );
            if (records.Length > 1)
            {
                DoubleCount++;
            }

            for (int i = 1; i < records.Length; i++)
            {
                FieldDifference[] diff = RecordComparator.FindDifference2
                                         (
                    records[0],
                    records[i],
                    ResiduaryTags
                                         )
                                         .ToArray();

                FieldDifference[] modified = diff
                                             .Where(line => line.State != FieldState.Unchanged)
                                             .ToArray();

                if (modified.Length == 0)
                {
                    Console.WriteLine("No difference found");
                    FullDoubleCount++;
                    if (DeleteDoubles)
                    {
                        connection.DeleteRecord(records[i].Mfn);
                        Console.WriteLine("Deleted");
                    }
                }
                foreach (FieldDifference line in diff)
                {
                    Console.WriteLine(line.ToString());
                }

                Console.WriteLine();
            }

            Console.WriteLine(new string('=', 70));
            Console.WriteLine();
        }
        public void DeleteRecord_Delete()
        {
            IrbisConnection connection = Connection
                                         .ThrowIfNull("Connection");

            MarcRecord record = _GetRecord();

            record = connection.WriteRecord(record);
            int mfn = record.Mfn;

            Write("MFN={0}: ", mfn);
            Write("created | ");

            connection.DeleteRecord(mfn);
            Write("deleted");
        }
Example #3
0
        private static void ProcessReader
        (
            int index,
            string ticket
        )
        {
            if (string.IsNullOrEmpty(ticket))
            {
                return;
            }

            Console.Write
            (
                "{0}: {1}",
                index,
                ticket
            );

            foreach (string database in databases)
            {
                connection.Database = database;
                int[] found = connection.Search
                              (
                    "\"RI={0}\"",
                    ticket
                              );
                if (found.Length == 0)
                {
                    Console.Write(" {0} [not found]", database);
                }
                else if (found.Length > 1)
                {
                    Console.Write(" {0} [too many!]", database);
                }
                else
                {
                    int mfn = found[0];
                    Console.Write
                    (
                        " {0} [MFN {1}]",
                        database,
                        mfn
                    );
                    if (doDelete)
                    {
                        try
                        {
                            connection.DeleteRecord(mfn, true);
                            Console.Write(" <deleted>");
                        }
                        catch (Exception exception)
                        {
                            Console.Write
                            (
                                " <exception>: {0}",
                                exception.GetType().Name
                            );
                        }
                    }
                }
            }

            Console.WriteLine(" done");
        }