From 2a2bac1b2036b362c0929d70d361cc5131cdeacb Mon Sep 17 00:00:00 2001 From: crum61kg Date: Wed, 8 Feb 2023 23:32:38 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarmlyShip/FormMapWithSetWarmlyShip.cs | 45 +++++++++++++------ WarmlyShip/WarmlyShip/SetWarmlyShipGeneric.cs | 15 +++++-- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs b/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs index 8557bf5..0e7f56b 100644 --- a/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs +++ b/WarmlyShip/WarmlyShip/FormMapWithSetWarmlyShip.cs @@ -76,11 +76,13 @@ namespace WarmlyShip if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text)) { MessageBox.Show("Не все данные заполнены", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogInformation($"Карта была не выбрана или не названа"); return; } if (!_mapsDict.ContainsKey(comboBoxSelectorMap.Text)) { MessageBox.Show("Нет такой карты", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogInformation($"Нет карты с названием: {textBoxNewMapName.Text}"); return; } _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); @@ -95,6 +97,7 @@ namespace WarmlyShip private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation($"Переход на карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); } /// @@ -111,6 +114,7 @@ namespace WarmlyShip if (MessageBox.Show($"Удалить карту {listBoxMaps.SelectedItem}?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); + _logger.LogInformation($"Удалена карту с названием: {listBoxMaps.SelectedItem?.ToString() ?? string.Empty}"); ReloadMaps(); } } @@ -128,18 +132,29 @@ namespace WarmlyShip private void AddShip(DrawningShip liner) { - if (listBoxMaps.SelectedIndex == -1) + try { - MessageBox.Show("Перед добавлением объекта необходимо создать карту"); + if (listBoxMaps.SelectedIndex == -1) + { + MessageBox.Show("Перед добавлением объекта необходимо создать карту"); + } + else if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawningObjectShip(liner) != -1) + { + MessageBox.Show("Объект добавлен"); + _logger.LogInformation($"Добавлен объект"); + pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + } + else + { + MessageBox.Show("Не удалось добавить объект"); + _logger.LogInformation($"Хранилище переполнено.", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + } } - else if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawningObjectShip(liner) != -1) - { - MessageBox.Show("Объект добавлен"); - pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); - } - else + catch(StorageOverflowException ex) { MessageBox.Show("Не удалось добавить объект"); + MessageBox.Show("Хранилище переполнено. Ошибка: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogInformation($"Хранилище переполнено. Ошибка: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); } } /// @@ -157,8 +172,7 @@ namespace WarmlyShip { return; } - if (MessageBox.Show("Удалить объект?", "Удаление", - MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } @@ -168,11 +182,14 @@ namespace WarmlyShip if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) { MessageBox.Show("Объект удален"); + _logger.LogInformation($"Из карты удален объект с позиции {pos}"); pictureBox1.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); ; } else { MessageBox.Show("Не удалось удалить объект"); + _logger.LogInformation($"Не удалось удалить объект с позиции {pos}"); + } } catch (WarmlyShipNotFoundException ex) @@ -183,7 +200,6 @@ namespace WarmlyShip { MessageBox.Show($"Неизвестная ошибка : {ex.Message}"); } - } /// @@ -261,11 +277,12 @@ namespace WarmlyShip { _mapsCollection.SaveData(saveFileDialog.FileName); MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogInformation($"Сохранение прошло успешно. Сохранено в {saveFileDialog.FileName}"); } catch (Exception ex) { MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); - + _logger.LogInformation($"Не удалось сохранить файл {saveFileDialog.FileName}. Ошибка: {ex.Message}"); } } } @@ -276,19 +293,19 @@ namespace WarmlyShip /// private void LoadToolStripMenuItem_Click(object sender, EventArgs e) { - // TODO продумать логику if (openFileDialog.ShowDialog() == DialogResult.OK) { try { _mapsCollection.LoadData(openFileDialog.FileName); MessageBox.Show("Загрузка прошла успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogInformation($"Загрузка файла {openFileDialog.FileName} прошла успешно"); ReloadMaps(); } catch (Exception ex) { MessageBox.Show($"Не загрузилось: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); - + _logger.LogInformation($"Не загрузился файл {openFileDialog.FileName}. Ошибка:{ex.Message}"); } } } diff --git a/WarmlyShip/WarmlyShip/SetWarmlyShipGeneric.cs b/WarmlyShip/WarmlyShip/SetWarmlyShipGeneric.cs index 3292cd8..6bdff72 100644 --- a/WarmlyShip/WarmlyShip/SetWarmlyShipGeneric.cs +++ b/WarmlyShip/WarmlyShip/SetWarmlyShipGeneric.cs @@ -51,7 +51,11 @@ namespace WarmlyShip /// public int Insert(T ship, int position) { - // + if (Count >= _maxCount) + { + throw new StorageOverflowException(Count); + } + if (position < 0 || position > Count) { return -1; @@ -68,11 +72,14 @@ namespace WarmlyShip { if (position < 0 || position >= Count) return null; + var result = _places[position]; + if (result == null) + { + throw new WarmlyShipNotFoundException(position); + + } _places.RemoveAt(position); - - //throw new WarmlyShipNotFoundException(position); - return result; }