/// <summary> /// Обработчик события нажатия клавиши мыши на графический объект, /// который осуществляет увеличение количества выбранного установленного накопителя /// </summary> private void picBtn_IncreaseStorage_Click(object sender, EventArgs e) { var selectedInstalledStorage = installedStorageOnSANBindingSource.Current as InstalledStorageOnSAN; if (selectedInstalledStorage == null) { MessageBox.Show("Выберите установленный накопитель из списка!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var avalibleInterface = AvalibleInterfaces.Single(av => av.Name.Equals(selectedInstalledStorage.Interface)); var installedStoragesOfInterface = InstalledStorageOnSAN.Where(iss => iss.Interface.Equals(avalibleInterface.Name)).ToList(); if (installedStoragesOfInterface.Count > 0) { int avalibleSlotCount = avalibleInterface.Slot_Count - installedStoragesOfInterface.Sum(isi => isi.Count); if (avalibleSlotCount == 0) { MessageBox.Show($"Все разъемы под интерфейс {avalibleInterface.Name} заняты!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } try { selectedInstalledStorage.Count++; installedStorageOnSANBindingSource.DataSource = InstalledStorageOnSAN; dg_InstalledStorage.DataSource = InstalledStorageOnSAN; dg_InstalledStorage.Refresh(); var sanPartInfo = sANPartsInfoBindingSource.DataSource as SANPartsInfo; if (sanPartInfo != null) { sanPartInfo.StorageSumPrice += selectedInstalledStorage.Price; sanPartInfo.UpdateTotalPrice(); BindSANPartsInfo(); } } catch { MessageBox.Show("Произошла ошибка при добавлении накопителя!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Обработчик события нажатия клавиши мыши на графический объект, /// который осуществляет добавление выбранного накопителя к установленным /// </summary> private void pictureBox13_Click(object sender, EventArgs e) { var selectedStorage = strorageBindingSource.Current as Strorage; if (selectedStorage == null) { MessageBox.Show("Выберите накопитель из списка!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var avalibleInterface = AvalibleInterfaces.Single(av => av.Name.Equals(selectedStorage.StrorageInterface.Name)); var installedStoragesOfInterface = InstalledStorageOnSAN.Where(iss => iss.Interface.Equals(avalibleInterface.Name)).ToList(); if (installedStoragesOfInterface.Count > 0) { int avalibleSlotCount = avalibleInterface.Slot_Count - installedStoragesOfInterface.Sum(isi => isi.Count); if (avalibleSlotCount == 0) { MessageBox.Show($"Все разъемы под интерфейс {avalibleInterface.Name} заняты!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } try { var existedItem = InstalledStorageOnSAN.SingleOrDefault(iss => iss.Manufacturer.Equals(selectedStorage.Manufacturer.Name) && iss.Model.Equals(selectedStorage.Model)); if (existedItem != null) { existedItem.Count++; installedStorageOnSANBindingSource.DataSource = InstalledStorageOnSAN; dg_InstalledStorage.DataSource = installedStorageOnSANBindingSource; dg_InstalledStorage.Refresh(); } else { InstalledStorageOnSAN.Add(new InstalledStorageOnSAN { Model = selectedStorage.Model, Manufacturer = selectedStorage.Manufacturer.Name, Volume = selectedStorage.Volume, Interface = selectedStorage.StrorageInterface.Name, Count = 1, Price = selectedStorage.Price }); } var sanPartInfo = sANPartsInfoBindingSource.DataSource as SANPartsInfo; if (sanPartInfo != null) { sanPartInfo.StorageSumPrice += selectedStorage.Price; sanPartInfo.UpdateTotalPrice(); BindSANPartsInfo(); } } catch { MessageBox.Show("Произошла ошибка при добавлении накопителя!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }