Example #1
0
        public static bool TryLogin2
        (
            this ManagedClient64 client,
            IWin32Window owner
        )
        {
            while (Login2(client, owner))
            {
                try
                {
                    client.Connect();
                    if (client.Connected)
                    {
                        return(true);
                    }
                }
                // ReSharper disable once EmptyGeneralCatchClause
                catch
                {
                    return(false);
                }
            }

            return(false);
        }
Example #2
0
        private void _Worker
        (
            object state
        )
        {
            int[] chunk = (int[])state;
            //foreach (int mfn in chunk)
            //{
            //    IrbisRecord record = new IrbisRecord{Mfn = mfn};
            //    _PutRecord(record);
            //}
            //_event.Set();

            using (ManagedClient64 client = new ManagedClient64())
            {
                client.ParseConnectionString(ConnectionString);
                client.Connect();
                BatchRecordReader batch = new BatchRecordReader
                                          (
                    client,
                    chunk
                                          );
                foreach (IrbisRecord record in batch)
                {
                    _PutRecord(record);
                }
            }
            _event.Set();
        }
Example #3
0
        private void _Worker
        (
            object state
        )
        {
            int[] chunk = (int[])state;

            using (ManagedClient64 client = new ManagedClient64())
            {
                client.ParseConnectionString(ConnectionString);
                client.Connect();

                BatchRecordFormatter batch = new BatchRecordFormatter
                                             (
                    client,
                    chunk,
                    Format
                                             );
                foreach (string line in batch)
                {
                    _PutLine(line);
                }
            }
            _event.Set();
        }
Example #4
0
        private ManagedClient64 _GetNewClient()
        {
            if (_activeConnections.Count >= Capacity)
            {
                return(null);
            }

            ManagedClient64 result = new ManagedClient64();

            result.ParseConnectionString(ConnectionString);
            result.Connect();

            return(result);
        }
 public IrbisHandler()
 {
     try
     {
         client = new ManagedClient64();
         client.ParseConnectionString("host=127.0.0.1;port=8888; user=СПА;password=1;");
         client.Connect();
         client.PushDatabase("MPDA");
         Console.WriteLine("Connected to irbis_server successfully");
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
        /// <summary>
        /// Получаем уже подключенного клиента.
        /// </summary>
        /// <returns></returns>
        /// <exception cref="ApplicationException">
        /// Если строка подключения в app.settings не найдена.
        /// </exception>
        public static ManagedClient64 GetClient()
        {
            string connectionString = GetConnectionString();

            if (string.IsNullOrEmpty(connectionString))
            {
                throw new ApplicationException("Connection string not specified!");
            }

            ManagedClient64 result = new ManagedClient64();

            result.ParseConnectionString(connectionString);
            result.Connect();

            return(result);
        }
Example #7
0
        public FindReplaceScriptEditor(ExtractedValue recordsData)
        {
            this.recordsData = recordsData;
            config           = null;
            string exeConfigPath = this.GetType().Assembly.Location;

            try
            {
                config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);

                if (config != null)
                {
                    activeTabIndex = Convert.ToByte(GetAppSetting(config, "activeTabIndex"));
                    string connectionString = GetAppSetting(config, "connection-string");
                    client = new ManagedClient64();
                    client.ParseConnectionString(connectionString);
                    try
                    {
                        client.Connect();

                        if (!String.IsNullOrEmpty(recordsData.DBName))
                        {
                            client.Database = recordsData.DBName;
                        }

                        curDatabase = client.IrbisDatabases.dataBases[client.IrbisDatabases.SelectedIndex];
                    }
                    catch
                    {
                        client.Shutdown();
                    }

                    InitializeComponent();
                    cmbTemplateType.SelectedIndex = 1;
                }
            }
            catch (Exception ex)
            {
                //handle errror here.. means DLL has no sattelite configuration file.
                MessageBox.Show(ex.Message);
                return;
            }
        }
Example #8
0
 internal void Connect()
 {
     try
     {
         if (connected)
         {
             Disconnect();
         }
         client.ParseConnectionString("host=127.0.0.1;port=8888; user=a; password=1;");
         client.Connect();
         client.PushDatabase("MPDA");
         connected = true;
         Console.WriteLine("Connected!");
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString() + "Error!");
     }
 }
Example #9
0
        private ManagedClient64 _CreateClient()
        {
            ManagedClient64 result = new ManagedClient64
            {
                Host     = Host,
                Port     = Port,
                Database = RequestDatabase,
                Username = Login,
                Password = Password
            };

            if (AllowDebug)
            {
                result.DebugWriter          = File.AppendText("Watcher.log");
                result.AllowHexadecimalDump = true;
            }
            result.Connect();
            return(result);
        }
Example #10
0
        private int[] _GetMfnList
        (
            string connectionString
        )
        {
            if (string.IsNullOrEmpty(connectionString))
            {
                throw new ArgumentNullException("connectionString");
            }

            using (ManagedClient64 client = new ManagedClient64())
            {
                client.ParseConnectionString(connectionString);
                client.Connect();
                int maxMfn = client.GetMaxMfn() - 1;
                if (maxMfn <= 0)
                {
                    throw new ApplicationException("MaxMFN=0");
                }
                int[] result = Enumerable.Range(1, maxMfn).ToArray();
                return(result);
            }
        }
Example #11
0
 internal void Connect(string database, string login, string password)
 {
     try
     {
         if (connected)
         {
             Disconnect();
         }
         client.ParseConnectionString("host=127.0.0.1;port=8888; user="******";password="******";");
         //client.ParseConnectionString("host=194.169.10.3;port=8888; user="******";password="******";");
         client.Connect();
         client.PushDatabase(database);
         connected = true;
         MessageBox.Show("Connected!");
     }
     catch (Exception ex)
     {
         logging.WriteLine("ERROR DURING CONNECTION!");
         logging.WriteLine(ex.StackTrace);
         logging.WriteLine(ex.ToString());
         MessageBox.Show("Error!");
     }
 }
Example #12
0
        static void Main(string[] args)
        {
            using (ManagedClient64 client = new ManagedClient64())
            {
                //client.AllowHexadecimalDump = true;
                //client.DebugWriter = Console.Out;

                client.Connect();

                IrbisDatabaseInfo[] databases = client.ListDatabases();
                foreach (IrbisDatabaseInfo database in databases)
                {
                    Console.WriteLine(database);
                }

                client.GetServerStat();

                //Console.WriteLine(client.GetDatabaseInfo());

                //Console.WriteLine("Max MFN={0}",client.GetMaxMfn());


                //Console.WriteLine(client.GetVersion());
                //Thread.Sleep(100);
                //client.NoOp();
                //Thread.Sleep(100);

                //string fileText = client.ReadTextFile(IrbisPath.MasterFile, "pst.mnu");
                //Console.WriteLine(fileText);
                //Thread.Sleep(100);

                //string[] rawRecord = client.ReadRawRecord(2, false);
                //foreach (string line in rawRecord)
                //{
                //    Console.WriteLine(line);
                //}

                //string[] found = client.RawSearch("K=A$", 1, 0, "@brief");
                //foreach (string line in found)
                //{
                //    Console.WriteLine(line);
                //}

                //int[] found = client.Search("K=A$");
                //foreach (int mfn in found)
                //{
                //    Console.WriteLine("{0})", mfn);
                //    Console.WriteLine(client.FormatRecord("@",mfn));
                //    Console.WriteLine();
                //}

                int[]    found = client.Search("K=A$");
                string[] texts = client.FormatRecords("@", found);
                foreach (string text in texts)
                {
                    Console.WriteLine(text);
                    Console.WriteLine();
                }


                Console.WriteLine();
            }
        }
Example #13
0
        private static void Main()
        {
            try
            {
                using (ManagedClient64 client = new ManagedClient64())
                {
                    // Подключаемся к серверу
                    client.ParseConnectionString("host=127.0.0.1;port=6666;"
                                                 + "user=1;password=1;");
                    client.Connect();

                    // Ищем все книги, у которых автор начинается на А (кириллица)
                    int[] foundRecords = client.Search("\"A={0}$\"", "А");

                    // Чтобы не распечатывать все найденные записи,
                    // ограничимся первыми 10
                    int recordsToShow = Math.Min(foundRecords.Length, 10);

                    for (int i = 0; i < recordsToShow; i++)
                    {
                        int thisMfn = foundRecords[i];

                        // Считываем запись
                        IrbisRecord record = client.ReadRecord(thisMfn);

                        // Получаем основное заглавие
                        string mainTitle = record
                                           .Fields
                                           .GetField("200")
                                           .GetSubField('a')
                                           .GetSubFieldText()
                                           .FirstOrDefault();

                        // Можно было просто написать:
                        // string mainTitle = record.FM("200", 'a');

                        Console.WriteLine
                        (
                            "MFN={0}, Main title={1}",
                            thisMfn,
                            mainTitle
                        );

                        // Расформатируем запись
                        Console.WriteLine
                        (
                            "BRIEF: {0}",
                            client.FormatRecord("@brief", record)
                        );

                        // Создаем запись
                        IrbisRecord newRecord = new IrbisRecord();
                        newRecord.AddField
                        (
                            "700",
                            'a',
                            "Управляемый клиент ИРБИС64"
                        )
                        .AddField
                        (
                            "200",
                            'a',
                            string.Format("Новая Запись от {0}", DateTime.Now),
                            'f',
                            "Управляемый клиент"
                        );

                        // Отсылаем вновь созданную запись на сервер
                        client.WriteRecord
                        (
                            newRecord,
                            false,
                            true
                        );

                        Console.WriteLine(new string('-', 60));
                    }

                    // По выходу из using автоматически вызывается client.Disconnect ()
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }