private void _searchButton_Click ( object sender, EventArgs e ) { _resultBox.Clear(); _loginBox.Clear(); _passwordBox.Clear(); string ticket = _ticketBox.Text.Trim(); if (string.IsNullOrEmpty(ticket)) { _resultBox.Text = Environment.NewLine + Resources.MainForm_NoIogunbTicket; return; } using (IrbisConnection connection = GetConnection()) { string expression = string.Format ( "\"RI={0}\"", ticket ); int[] found = connection.Search(expression); if (found.Length == 0) { _resultBox.Text = Environment.NewLine + Resources.MainForm_NoReaderFound; _ticketBox.Focus(); return; } if (found.Length != 1) { _resultBox.Text = Environment.NewLine + Resources.MainForm_ManyReadersFound; _ticketBox.Focus(); return; } MarcRecord record = connection.ReadRecord(found[0]); string description = connection.FormatRecord("@brief", found[0]); _resultBox.Text = Environment.NewLine + description; RecordField litresField = record.Fields .GetFirstField(_litresTag); if (!ReferenceEquals(litresField, null)) { _loginBox.Text = litresField.GetFirstSubFieldValue('a'); _passwordBox.Text = litresField.GetFirstSubFieldValue('b'); } _loginBox.Focus(); } }
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')); }
public void RecordField_ReplaceSubField_1() { const string previous = "SubfieldA"; const string expected = "SubFieldA1"; RecordField field = new RecordField(200) .AddSubField('a', previous); field.ReplaceSubField('a', previous, expected); Assert.AreEqual(expected, field.GetFirstSubFieldValue('a')); }
public void RecordField_SetValue_2() { bool save = RecordField.BreakOnValueContainDelimiters; RecordField.BreakOnValueContainDelimiters = false; try { RecordField field = new RecordField(200); field.SetValue("Value^aSubfieldA^bSubfieldB"); Assert.AreEqual(2, field.SubFields.Count); Assert.AreEqual("SubfieldA", field.GetFirstSubFieldValue('a')); Assert.AreEqual("SubfieldB", field.GetFirstSubFieldValue('b')); Assert.AreEqual("Value", field.Value); } finally { RecordField.BreakOnValueContainDelimiters = save; } }
private bool CheckPodsob ( [NotNull] string rfid, [NotNull] PodsobRecord podsob ) { Code.NotNull(podsob, "podsob"); bool usePodsob = podsob.Inventory != 0; string place = _placeBox.Text.Trim(); if (string.IsNullOrEmpty(place)) { WriteLine("Не задано место хранения!"); return(false); } if (usePodsob && !string.IsNullOrEmpty(podsob.Ticket) && !podsob.Ticket.SameString(place)) { WriteLine ( "Место хранения не совпадает: {0}", podsob.Ticket.ToVisibleString() ); return(false); } if (usePodsob && !string.IsNullOrEmpty(podsob.OnHand)) { WriteLine ( "Книга числится за {0}", podsob.OnHand.ToVisibleString() ); return(false); } if (usePodsob && !string.IsNullOrEmpty(podsob.Sigla) && !place.SameString(podsob.Sigla)) { WriteLine ( "Не совпадает сигла: {0}", podsob.Sigla.ToVisibleString() ); return(false); } MarcRecord record = podsob.Record.ThrowIfNull("podsob.Record"); RecordField field = record.Fields .GetField(910) .FirstOrDefault ( f => rfid.SameString(f.GetFirstSubFieldValue('b')) || rfid.SameString(f.GetFirstSubFieldValue('h')) || rfid.SameString(f.GetFirstSubFieldValue('t')) ); if (ReferenceEquals(field, null)) { WriteLine("Не найден экземпляр: {0}", rfid); return(false); } string status = field.GetFirstSubFieldValue('a'); if (!status.SameString("0")) { WriteLine ( "Неожиданный статус: {0}", status.ToVisibleString() ); return(false); } string inventory = field.GetFirstSubFieldValue('b'); if (string.IsNullOrEmpty(inventory)) { WriteLine ( "Инвентарный номер: {0}", inventory.ToVisibleString() ); return(false); } if (usePodsob && !inventory.SameString(podsob.Inventory.ToInvariantString())) { WriteLine ( "Инвентарный номер не совпадает: {0} и {1}", podsob.Inventory, inventory ); return(false); } string fieldPlace = field.GetFirstSubFieldValue('d'); if (!string.IsNullOrEmpty(fieldPlace) && !place.SameString(fieldPlace)) { WriteLine ( "Не совпадает место хранения: {0}", fieldPlace.ToVisibleString() ); return(false); } _goodRecord = new StatusRecord { Inventory = podsob.Inventory, Record = record, Description = record.Description, Field = field, Place = place }; return(true); }