private void LoadExemplars() { if (!File.Exists("list.sav")) { return; } ExemplarInfo[] array = null; Run ( () => { array = SerializationUtility .RestoreArrayFromFile <ExemplarInfo>("list.sav"); } ); if (ReferenceEquals(array, null)) { return; } ExemplarList.Clear(); _bindingSource.SuspendBinding(); foreach (ExemplarInfo exemplar in array) { ExemplarList.Add(exemplar); } _bindingSource.ResumeBinding(); }
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() ); }