Skip to content

Client framework for IRBIS64 system ported to .NET 6

License

Notifications You must be signed in to change notification settings

unatlib/ManagedIrbis5

 
 

Repository files navigation

ManagedIrbis5

Client framework for IRBIS64 system ported to .NET 6

Currently supports:

  • Windows 7/10/11 x64
  • MacOS 10.14
  • .NET runtime 6.0.0 and higher
  • .NET SDK 6.0.100 and higher
using System;                                   
using ManagedIrbis;
using static System.Console;

try
{
    await using var connection = ConnectionFactory.Shared.CreateAsyncConnection();

    connection.Host = args.Length == 0 ? "127.0.0.1" : args[0];
    connection.Username = "librarian";
    connection.Password = "secret";

    var success = await connection.ConnectAsync();
    if (!success)
    {
        // не получилось подключиться, жалуемся и завершаемся
        await Error.WriteLineAsync ("Can't connect");
        await Error.WriteLineAsync (IrbisException.GetErrorDescription (connection.LastError));
        return 1;
    }

    await Out.WriteLineAsync ("Successfully connected");

    // Ищем все книги, автором которых является А. С. Пушкин
    // Обратите внимание на двойные кавычки в тексте запроса
    var found = await connection.SearchAsync
        (
            "\"A=ПУШКИН$\""
        );

    await Out.WriteLineAsync ($"Найдено записей: {found.Length}");

    // Чтобы не распечатывать все найденные записи,
    // отберем только 10 первых
    foreach (var mfn in found[..10])
    {
        // Получаем запись из базы данных
        var record = await connection.ReadRecordAsync (mfn);

        if (record is not null)
        {
            // Извлекаем из записи интересующее нас поле и подполе
            var title = record.FM (200, 'a');
            await Out.WriteLineAsync ($"Title: {title}");
        }

        // Форматируем запись средствами сервера
        var description = await connection.FormatRecordAsync
            (
                "@brief",
                mfn
            );
        await Out.WriteLineAsync ($"Биб. описание: {description}");

        await Out.WriteLineAsync(); // Добавляем пустую строку
    }

    // Отключаемся от сервера
    await connection.DisposeAsync();
    await Out.WriteLineAsync ("Successfully disconnected");
}
catch (Exception exception)
{
    await Error.WriteLineAsync (exception.ToString());
    return 1;
}

return 0;

Build status

Codacy Badge Build status Build status GitHub Action FOSSA Status Maintainability CodeFactor

License

FOSSA Status

Documentation (in russian)

Badge

About

Client framework for IRBIS64 system ported to .NET 6

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 93.8%
  • CSS 2.4%
  • Smalltalk 1.3%
  • TeX 1.1%
  • PHP 0.5%
  • HTML 0.3%
  • Other 0.6%