From 069691bec582b4b368c78009145b9bb2803e301c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?10=D0=93=20=D0=95=D0=B3=D0=BE=D1=80=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Sun, 4 Dec 2022 23:08:42 +0400 Subject: [PATCH 1/3] =?UTF-8?q?7=20=D0=BB=D0=B0=D0=B1=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HoistingCrane/HoistingCrane/App.config | 66 ++++++++++++++ .../FormMapWithSetHoistingCrane.Designer.cs | 14 +-- .../FormMapWithSetHoistingCrane.cs | 89 ++++++++++++++----- .../HoistingCrane/HoistingCrane.csproj | 14 +++ .../HoistingCraneNotFoundException.cs | 21 +++++ HoistingCrane/HoistingCrane/MapsCollection.cs | 10 +-- HoistingCrane/HoistingCrane/Program.cs | 29 +++++- .../Properties/Settings.Designer.cs | 30 +++++++ .../HoistingCrane/SetHoistingCraneGeneric.cs | 49 +++++++--- .../HoistingCrane/StorageOverflowException.cs | 21 +++++ HoistingCrane/HoistingCrane/packages.config | 48 ++++++++++ 11 files changed, 341 insertions(+), 50 deletions(-) create mode 100644 HoistingCrane/HoistingCrane/App.config create mode 100644 HoistingCrane/HoistingCrane/HoistingCraneNotFoundException.cs create mode 100644 HoistingCrane/HoistingCrane/Properties/Settings.Designer.cs create mode 100644 HoistingCrane/HoistingCrane/StorageOverflowException.cs create mode 100644 HoistingCrane/HoistingCrane/packages.config diff --git a/HoistingCrane/HoistingCrane/App.config b/HoistingCrane/HoistingCrane/App.config new file mode 100644 index 0000000..bc02e6b --- /dev/null +++ b/HoistingCrane/HoistingCrane/App.config @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs index 7523fe8..73f94b7 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs @@ -155,7 +155,7 @@ // // maskedTextBoxPosition // - this.maskedTextBoxPosition.Location = new System.Drawing.Point(21, 459); + this.maskedTextBoxPosition.Location = new System.Drawing.Point(21, 436); this.maskedTextBoxPosition.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.maskedTextBoxPosition.Mask = "00"; this.maskedTextBoxPosition.Name = "maskedTextBoxPosition"; @@ -165,7 +165,7 @@ // // buttonRemoveHoistingCrane // - this.buttonRemoveHoistingCrane.Location = new System.Drawing.Point(20, 494); + this.buttonRemoveHoistingCrane.Location = new System.Drawing.Point(20, 471); this.buttonRemoveHoistingCrane.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonRemoveHoistingCrane.Name = "buttonRemoveHoistingCrane"; this.buttonRemoveHoistingCrane.Size = new System.Drawing.Size(199, 47); @@ -176,7 +176,7 @@ // // buttonShowStorage // - this.buttonShowStorage.Location = new System.Drawing.Point(20, 549); + this.buttonShowStorage.Location = new System.Drawing.Point(20, 526); this.buttonShowStorage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonShowStorage.Name = "buttonShowStorage"; this.buttonShowStorage.Size = new System.Drawing.Size(199, 47); @@ -239,10 +239,10 @@ // // buttonShowOnMap // - this.buttonShowOnMap.Location = new System.Drawing.Point(20, 604); + this.buttonShowOnMap.Location = new System.Drawing.Point(21, 584); this.buttonShowOnMap.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonShowOnMap.Name = "buttonShowOnMap"; - this.buttonShowOnMap.Size = new System.Drawing.Size(193, 47); + this.buttonShowOnMap.Size = new System.Drawing.Size(198, 47); this.buttonShowOnMap.TabIndex = 5; this.buttonShowOnMap.Text = "Посмотреть карту"; this.buttonShowOnMap.UseVisualStyleBackColor = true; @@ -250,7 +250,7 @@ // // buttonAddHoistingCrane // - this.buttonAddHoistingCrane.Location = new System.Drawing.Point(20, 404); + this.buttonAddHoistingCrane.Location = new System.Drawing.Point(20, 381); this.buttonAddHoistingCrane.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); this.buttonAddHoistingCrane.Name = "buttonAddHoistingCrane"; this.buttonAddHoistingCrane.Size = new System.Drawing.Size(199, 47); @@ -286,7 +286,7 @@ this.saveToolStripMenuItem, this.loadToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(54, 29); + this.fileToolStripMenuItem.Size = new System.Drawing.Size(46, 24); this.fileToolStripMenuItem.Text = "File"; // // saveToolStripMenuItem diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs index 6a9c813..1485f78 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs @@ -1,4 +1,5 @@ using System; +using Microsoft.Extensions.Logging; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -22,12 +23,17 @@ namespace HoistingCrane /// /// Объект от коллекции карт /// + /// Логер + /// + private readonly ILogger _logger; + /// private readonly MapsCollection _mapsCollection; /// private MapWithSetHoistingCraneGeneric _mapHoistingCraneCollectionGeneric; - public FormMapWithSetHoistingCrane() + public FormMapWithSetHoistingCrane(ILogger logger) { InitializeComponent(); + _logger = logger; _mapsCollection = new MapsCollection(pictureBox.Width, pictureBox.Height); comboBoxSelectorMap.Items.Clear(); foreach (var elem in _mapsDict) @@ -99,10 +105,12 @@ namespace HoistingCrane } _mapsCollection.AddMap(textBoxNewMapName.Text, _mapsDict[comboBoxSelectorMap.Text]); ReloadMaps(); + _logger.LogInformation($"Добавлена карта {textBoxNewMapName.Text}"); } private void ListBoxMaps_SelectedIndexChanged(object sender, EventArgs e) { pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation($"Переход на карту {listBoxMaps.SelectedItem?.ToString()}"); } /// /// Удаление карты @@ -119,6 +127,7 @@ namespace HoistingCrane { _mapsCollection.DelMap(listBoxMaps.SelectedItem?.ToString() ?? string.Empty); ReloadMaps(); + _logger.LogInformation($"Удалена карта {listBoxMaps.SelectedItem?.ToString()}"); } } private void ButtonAddHoistingCrane_Click(object sender, EventArgs e) @@ -133,15 +142,33 @@ namespace HoistingCrane } private void AddHoistingCrane(DrawingHoistingCrane drawingHoistingCrane) { - DrawingObjectHoistingCrane hoistingCrane = new DrawingObjectHoistingCrane(drawingHoistingCrane); - if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + hoistingCrane != -1) + try { - MessageBox.Show("Объект добавлен"); - pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + if (listBoxMaps.SelectedIndex == -1) + { + MessageBox.Show("Перед добавлением объекта необходимо создать карту"); + } + else if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + new DrawingObjectHoistingCrane(drawingHoistingCrane) != -1) + { + _logger.LogInformation($"Добавлен кран {drawingHoistingCrane}"); + MessageBox.Show("Объект добавлен"); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + } + else + { + _logger.LogWarning("Не удалось добавить кран"); + MessageBox.Show("Не удалось добавить объект"); + } } - else + catch (StorageOverflowException ex) { - MessageBox.Show("Не удалось добавить объект"); + _logger.LogWarning($"Ошибка переполнения хранилища: {ex.Message}"); + MessageBox.Show($"Ошибка переполнения хранилища: {ex.Message}", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + _logger.LogWarning($"Неизвестная ошибка: {ex.Message}"); + MessageBox.Show($"Неизвестная ошибка: {ex.Message}"); } } private void ButtonRemoveHoistingCrane_Click(object sender, EventArgs e) @@ -155,14 +182,28 @@ namespace HoistingCrane return; } int pos = Convert.ToInt32(maskedTextBoxPosition.Text); - if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) + try { - MessageBox.Show("Объект удален"); - pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) + { + MessageBox.Show("Объект удален"); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); + _logger.LogInformation($"Удален объект {pos}"); + } + else + { + MessageBox.Show("Не удалось удалить объект"); + } } - else + catch (HoistingCraneNotFoundException ex) { - MessageBox.Show("Не удалось удалить объект"); + _logger.LogWarning($"Ошибка {ex.Message}"); + MessageBox.Show($"Ошибка удаления: {ex.Message}"); + } + catch (Exception ex) + { + _logger.LogWarning($"Ошибка {ex.Message}"); + MessageBox.Show($"Неизвестная ошибка: {ex.Message}"); } } private void ButtonShowStorage_Click(object sender, EventArgs e) @@ -210,15 +251,18 @@ namespace HoistingCrane { if (saveFileDialog.ShowDialog() == DialogResult.OK) { - if (_mapsCollection.SaveData(saveFileDialog.FileName)) + try { + _mapsCollection.SaveData(saveFileDialog.FileName); MessageBox.Show("Сохранение прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); + _logger.LogInformation($"Сохранение данных"); } - else + catch (Exception ex) { - MessageBox.Show("Не сохранилось", "Результат", - MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show($"Не сохранилось: {ex.Message}", "Результат", + MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogWarning($"Ошибка {ex.Message}"); } } @@ -227,16 +271,19 @@ namespace HoistingCrane { if (openFileDialog.ShowDialog() == DialogResult.OK) { - if (_mapsCollection.LoadData(openFileDialog.FileName)) + try { + _mapsCollection.LoadData(openFileDialog.FileName); + ReloadMaps(); MessageBox.Show("Открытие прошло успешно", "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); - ReloadMaps(); + _logger.LogInformation($"Загрузка данных"); } - else + catch (Exception ex) { - MessageBox.Show("Не удалось открыть", "Результат", - MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show($"Не удалось открыть: {ex.Message}", "Результат", + MessageBoxButtons.OK, MessageBoxIcon.Error); + _logger.LogWarning($"Ошибка {ex.Message}"); } } } diff --git a/HoistingCrane/HoistingCrane/HoistingCrane.csproj b/HoistingCrane/HoistingCrane/HoistingCrane.csproj index b57c89e..f08bb8d 100644 --- a/HoistingCrane/HoistingCrane/HoistingCrane.csproj +++ b/HoistingCrane/HoistingCrane/HoistingCrane.csproj @@ -8,4 +8,18 @@ enable + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/HoistingCraneNotFoundException.cs b/HoistingCrane/HoistingCrane/HoistingCraneNotFoundException.cs new file mode 100644 index 0000000..4be24c4 --- /dev/null +++ b/HoistingCrane/HoistingCrane/HoistingCraneNotFoundException.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace HoistingCrane +{ + [Serializable] + internal class HoistingCraneNotFoundException : ApplicationException + { + public HoistingCraneNotFoundException(int i) : base($"Не найден объект по позиции {i}") { } + public HoistingCraneNotFoundException() : base() { } + public HoistingCraneNotFoundException(string message) : base(message) { } + public HoistingCraneNotFoundException(string message, Exception exception) : + base(message, exception) + { } + protected HoistingCraneNotFoundException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } + } +} diff --git a/HoistingCrane/HoistingCrane/MapsCollection.cs b/HoistingCrane/HoistingCrane/MapsCollection.cs index bfefcfd..6ac3396 100644 --- a/HoistingCrane/HoistingCrane/MapsCollection.cs +++ b/HoistingCrane/HoistingCrane/MapsCollection.cs @@ -81,7 +81,7 @@ namespace HoistingCrane /// Сохранение информации про лодки м в хранилище в файл /// /// Путь и имя файла - public bool SaveData(string filename) + public void SaveData(string filename) { if (File.Exists(filename)) { @@ -99,15 +99,14 @@ namespace HoistingCrane ); } } - return true; } /// Загрузка информации по локомотивам в депо из файла - public bool LoadData(string filename) + public void LoadData(string filename) { if (!File.Exists(filename)) { - return false; + throw new FileNotFoundException(filename); } using (FileStream fs = new(filename, FileMode.Open)) using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) @@ -116,7 +115,7 @@ namespace HoistingCrane if (!curLine.Contains("MapsCollection")) { - return false; + throw new FormatException(curLine); } _mapStorages.Clear(); while ((curLine = sr.ReadLine()) != null) @@ -138,7 +137,6 @@ namespace HoistingCrane _mapStorages.Add(elems[0], new MapWithSetHoistingCraneGeneric(_pictureWidth, _pictureHeight, map)); _mapStorages[elems[0]].LoadData(elems[2].Split(separatorData, StringSplitOptions.RemoveEmptyEntries)); } - return true; } } } diff --git a/HoistingCrane/HoistingCrane/Program.cs b/HoistingCrane/HoistingCrane/Program.cs index 8b6d8ae..055801b 100644 --- a/HoistingCrane/HoistingCrane/Program.cs +++ b/HoistingCrane/HoistingCrane/Program.cs @@ -1,3 +1,9 @@ + +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Configuration; +using Serilog; + namespace HoistingCrane { internal static class Program @@ -8,10 +14,25 @@ namespace HoistingCrane [STAThread] static void Main() { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new FormMapWithSetHoistingCrane()); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + var services = new ServiceCollection(); + ConfigureServices(services); + using (ServiceProvider serviceProvider = services.BuildServiceProvider()) + { + Application.Run(serviceProvider.GetRequiredService()); + } + } + private static void ConfigureServices(ServiceCollection services) + { + services.AddSingleton() + .AddLogging(option => + { + var configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true).Build(); + var logger = new LoggerConfiguration().ReadFrom.Configuration(configuration).CreateLogger(); + option.SetMinimumLevel(LogLevel.Information); + option.AddSerilog(logger); + }); } } } \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/Properties/Settings.Designer.cs b/HoistingCrane/HoistingCrane/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c1d4294 --- /dev/null +++ b/HoistingCrane/HoistingCrane/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace HoistingCrane.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.3.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} \ No newline at end of file diff --git a/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs b/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs index 73c0856..710d61a 100644 --- a/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs +++ b/HoistingCrane/HoistingCrane/SetHoistingCraneGeneric.cs @@ -19,27 +19,52 @@ namespace HoistingCrane } public int Insert(T hoistingCrane) { - return Insert(hoistingCrane, 0); + for (int i = 0; i < _maxCount; i++) + { + if (i == Count) + { + _places.Insert(i, hoistingCrane); + return i; + } + } + throw new StorageOverflowException(_maxCount); + } public int Insert(T hoistingCrane, int position) { - if (position < 0 || position > Count || _maxCount == Count) + if (position < 0 || position >= _maxCount) { return -1; + + } + if (position == Count) + { + _places.Insert(position, hoistingCrane); + return position; + } + else + { + for (int i = position + 1; i < _maxCount; i++) + { + if (i == Count) + { + for (int j = i - 1; j >= position; j--) + { + _places[j + 1] = _places[j]; + } + _places.Insert(position, hoistingCrane); + return position; + } + } + throw new StorageOverflowException(_maxCount); } - _places.Insert(position, hoistingCrane); - return position; } public T Remove(int position) { - if (position < Count && position >= 0 && _places[position] != null) - { - _places[position] = null; - T removed = _places[position]; - return removed; - } - - return null; + if (position < 0 || position >= Count) throw new HoistingCraneNotFoundException(); + var result = _places[position]; + _places.RemoveAt(position); + return result; } public T this[int position] { diff --git a/HoistingCrane/HoistingCrane/StorageOverflowException.cs b/HoistingCrane/HoistingCrane/StorageOverflowException.cs new file mode 100644 index 0000000..7a74a0f --- /dev/null +++ b/HoistingCrane/HoistingCrane/StorageOverflowException.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace HoistingCrane +{ + [Serializable] + internal class StorageOverflowException : ApplicationException + { + public StorageOverflowException(int count) : base($"В наборе превышено допустимое количество: {count}") { } + public StorageOverflowException() : base() { } + public StorageOverflowException(string message) : base(message) { } + public StorageOverflowException(string message, Exception exception) : + base(message, exception) + { } + protected StorageOverflowException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } + } +} diff --git a/HoistingCrane/HoistingCrane/packages.config b/HoistingCrane/HoistingCrane/packages.config new file mode 100644 index 0000000..e05e131 --- /dev/null +++ b/HoistingCrane/HoistingCrane/packages.config @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- 2.25.1 From 666c51d70b0dd53ff6f1965c97af59d05f467c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?10=D0=93=20=D0=95=D0=B3=D0=BE=D1=80=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Mon, 5 Dec 2022 01:32:59 +0400 Subject: [PATCH 2/3] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormMapWithSetHoistingCrane.Designer.cs | 1 - .../FormMapWithSetHoistingCrane.cs | 26 +------------------ 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs index 73f94b7..78ff45b 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.Designer.cs @@ -121,7 +121,6 @@ this.comboBoxSelectorMap.Name = "comboBoxSelectorMap"; this.comboBoxSelectorMap.Size = new System.Drawing.Size(200, 28); this.comboBoxSelectorMap.TabIndex = 0; - this.comboBoxSelectorMap.SelectedIndexChanged += new System.EventHandler(this.ComboBoxSelectorMap_SelectedIndexChanged); // // textBoxNewMapName // diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs index 1485f78..4580210 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs @@ -29,7 +29,6 @@ namespace HoistingCrane /// private readonly MapsCollection _mapsCollection; /// - private MapWithSetHoistingCraneGeneric _mapHoistingCraneCollectionGeneric; public FormMapWithSetHoistingCrane(ILogger logger) { InitializeComponent(); @@ -63,29 +62,6 @@ namespace HoistingCrane listBoxMaps.SelectedIndex = index; } } - private void ComboBoxSelectorMap_SelectedIndexChanged(object sender, EventArgs e) - { - AbstractMap map = null; - switch (comboBoxSelectorMap.Text) - { - case "Простая карта": - map = new SimpleMap(); - break; - case "Вторая карта": - map = new SecondMap(); - break; - - } - if (map != null) - { - _mapHoistingCraneCollectionGeneric = new MapWithSetHoistingCraneGeneric( - pictureBox.Width, pictureBox.Height, map); - } - else - { - _mapHoistingCraneCollectionGeneric = null; - } - } /// /// Добавление карты /// @@ -245,7 +221,7 @@ namespace HoistingCrane enums = Direction.Right; break; } - pictureBox.Image = _mapHoistingCraneCollectionGeneric.MoveObject(enums); + pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].MoveObject(enums); } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { -- 2.25.1 From 9e445d72e983d6767f3645a0d8d2a2428f089484 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?10=D0=93=20=D0=95=D0=B3=D0=BE=D1=80=20=D0=A0=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Sun, 25 Dec 2022 12:32:11 +0400 Subject: [PATCH 3/3] gg --- HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs index 4580210..8b60519 100644 --- a/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs +++ b/HoistingCrane/HoistingCrane/FormMapWithSetHoistingCrane.cs @@ -22,7 +22,6 @@ namespace HoistingCrane }; /// /// Объект от коллекции карт - /// /// Логер /// private readonly ILogger _logger; -- 2.25.1