示例#1
0
        private void _badButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            if (_currentRecord == null ||
                _currentExemplar == null)
            {
                XtraMessageBox.Show
                (
                    "Нечего откладывать!"
                );
                return;
            }

            string      processing = CM.AppSettings["processing"];
            RecordField field      = _currentExemplar.Field;

            if (field == null)
            {
                return;
            }
            field.SetSubField('a', "5");
            field.SetSubField('d', processing);
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            _client.WriteRecord
            (
                _currentRecord,
                false,
                true
            );
            stopwatch.Stop();
            _logBox.Output.WriteLine
            (
                "Отложен номер {0}: {1} ({2})",
                _currentExemplar.Number,
                _currentRecord.UserData,
                stopwatch.Elapsed
            );

            _SetHtml(string.Empty);

            _currentRecord   = null;
            _currentExemplar = null;
        }
示例#2
0
        private void _fixPlaceButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            if (_currentRecord == null ||
                _currentExemplar == null)
            {
                XtraMessageBox.Show
                (
                    "Нечего исправлять!"
                );
                return;
            }

            RecordField field = _currentExemplar.Field;

            if (field == null)
            {
                return;
            }
            field.SetSubField('a', "0");
            field.SetSubField('d', CurrentFond);
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            _client.WriteRecord
            (
                _currentRecord,
                false,
                true
            );
            stopwatch.Stop();
            _logBox.Output.WriteLine
            (
                "Исправлено место/статус для номера {0}: {1} ({2})",
                _currentExemplar.Number,
                _currentRecord.UserData,
                stopwatch.Elapsed
            );

            _SetHtml(string.Empty);

            _currentRecord   = null;
            _currentExemplar = null;
        }
示例#3
0
        public void RecordField_SetSubField_2()
        {
            const string expected = "SubFieldB";
            RecordField  field    = new RecordField(200)
                                    .AddSubField('a', "SubfieldA");

            field.SetSubField('b', expected);
            Assert.AreEqual(expected, field.GetFirstSubFieldValue('b'));
        }
示例#4
0
        private void _confirmButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            StatusRecord status = _goodRecord;

            if (ReferenceEquals(status, null))
            {
                return;
            }

            long         inventory = _goodRecord.Inventory;
            StatusRecord found     = _bindingList.FirstOrDefault
                                     (
                item => item.Inventory == inventory
                                     );

            if (!ReferenceEquals(found, null))
            {
                WriteLine("Уже отмечено: {0}", inventory);

                return;
            }

            WriteLine("Помечаем: {0}", inventory);
            RecordField field = status.Field;

            field.SetSubField('d', status.Place);
            field.SetSubField('s', IrbisDate.TodayText);
            field.SetSubField('!', status.Place);
            Kladovka.Connection.WriteRecord(status.Record);

            _bindingList.Add(_goodRecord);

            _descriptionBox.Clear();
            SetStatus(new bool?());

            _goodRecord = null;
        }
        public void SubFieldCollection_SetField1()
        {
            RecordField field     = new RecordField("200");
            SubField    subFieldA = new SubField('a', "Title1");

            field.SubFields.Add(subFieldA);
            SubField subFieldE = new SubField('e', "Subtitle");

            field.SubFields.Add(subFieldE);
            field.SetSubField('a', "Title2");
            Assert.AreEqual("Title2", subFieldA.Value);
            Assert.AreEqual("Subtitle", subFieldE.Value);
        }
示例#6
0
        public void ProcessRecord
        (
            [NotNull] MarcRecord record,
            [NotNull] string newSigla,
            [NotNull] string number
        )
        {
            RecordField field = record.Fields
                                .GetField(910)
                                .GetField('b', number)
                                .FirstOrDefault();

            if (ReferenceEquals(field, null))
            {
                Output.WriteLine("{0}: no 910", number);

                return;
            }

            string existingSigla = field.GetSubFieldValue('d', 0);

            if (newSigla.SameString(existingSigla))
            {
                Output.Write("{0} ", record.Mfn);
            }
            else
            {
                if (field.GetSubFieldValue('a', 0).SameString("5"))
                {
                    field.SetSubField('a', "0");
                }
                field.SetSubField('d', newSigla);

                Connection.WriteRecord(record, false, true);
                Output.Write("[{0}] ", record.Mfn);
            }
        }
示例#7
0
        private void _addButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            UniversalForm mainForm = MainForm;

            if (ReferenceEquals(mainForm, null) ||
                !mainForm.Active)
            {
                WriteLine("Приложение не активно");

                return;
            }

            string number = _numberBox.Text.Trim();

            if (string.IsNullOrEmpty(number))
            {
                return;
            }

            _numberBox.Clear();
            _numberBox.Focus();
            Application.DoEvents();

            if (AlreadyHave(number))
            {
                WriteLine("Уже есть экземпляр: {0}", number);

                return;
            }

            ExemplarInfo exemplar = null;

            Manager.Format = ((ListFormat)_formatBox.SelectedItem)
                             .Format
                             .ThrowIfNull("Manager.Format");

            try
            {
                Run
                (
                    () =>
                {
                    exemplar = Manager.ReadExtend(number);
                }
                );
            }
            catch (Exception exception)
            {
                WriteLine("Ошибка: {0}", exception.Message);

                return;
            }

            if (ReferenceEquals(exemplar, null))
            {
                WriteLine("Не удалось найти экземпляр: {0}", number);

                return;
            }

            if (!string.IsNullOrEmpty(exemplar.Description))
            {
                exemplar.Description = exemplar.Description.Replace
                                       (
                    "[Текст] ",
                    string.Empty
                                       );
            }

            MarcRecord  record = exemplar.Record.ThrowIfNull("exemplar.Record");
            RecordField field  = exemplar.Field.ThrowIfNull("exemplar.Field");

            if (_statusBox.Checked &&
                exemplar.Status != "0")
            {
                exemplar.Status = "0";
                field.SetSubField('A', "0");
                WriteLine("Статус экземпляра {0} изменён на 0", number);
            }

            if (_exhibitionBox.Checked)
            {
                field.SetSubField('9', "Выставка новых поступлений");
                WriteLine("Экземпляр {0} передан на выставку", number);
            }

            if (record.Modified)
            {
                Run
                (
                    () =>
                {
                    MainForm.Provider.WriteRecord(record);
                    WriteLine("Изменения сохранены на сервере");
                }
                );
            }

            ExemplarList.Add(exemplar);
            _bindingSource.Position = ExemplarList.Count - 1;

            SaveExemplars();
            _numberBox.Focus();

            WriteLine
            (
                "Добавлено: {0} {1}",
                exemplar.Number,
                exemplar.Description.ToVisibleString()
            );
        }
示例#8
0
        private void _okButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            if (_currentRecord == null ||
                _currentExemplar == null)
            {
                XtraMessageBox.Show
                (
                    "Невозможно подтвердить книгу"
                );
                return;
            }

            RecordField field = _currentExemplar.Field;

            if (field == null)
            {
                return;
            }
            field.SetSubField('!', CurrentFond);
            field.SetSubField('s', CurrentDate);
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            _client.WriteRecord
            (
                _currentRecord,
                false,
                true
            );
            stopwatch.Stop();
            _logBox.Output.WriteLine
            (
                "Подтвержден номер {0}: {1} ({2})",
                _currentExemplar.Number,
                _currentRecord.UserData,
                stopwatch.Elapsed
            );

            BookInfo book = new BookInfo
            {
                Number      = _currentExemplar.Number,
                Description = (string)_currentRecord.UserData
            };

            ConfirmedBooks.Add(book);
            _counterLabel.Text = string.Format
                                 (
                "Подтверждено: {0}",
                ConfirmedBooks.Count
                                 );

            _SetHtml(string.Empty);

            _currentRecord   = null;
            _currentExemplar = null;

            if (_numberBox.Enabled)
            {
                _numberBox.Focus();
            }
        }