// обработчик события установки площадок private void OnSetPlatforms(Object sender, EventArgs e) { int?[][] platformView = _view.Platforms; using (warehousedbContext db = new warehousedbContext()) { for (int i = 0; i < platformView.Length; i++) { // иницилизируем запись для каждого пикета Platforms platform = new Platforms { Cargo = 0 }; // начальный груз 0 for (int j = 0; j < platformView[i].Length; j++) { Stocks stock = new Stocks { NameStock = "Склад 1", IdPlatformNavigation = platform, // присваиваем ссылку на площадку Picket = platformView[i][j], }; db.Stocks.Add(stock); // добавляем в контекст } } try { db.SaveChanges(); // сохраняем изменения в бд } catch (Exception ex) { ShowError(ex.Message); } } UpdateView(); }
// обработчик события удаления платформ private void OnDeletePlatforms(object sender, EventArgs e) { int?[][] platformView = _view.Platforms; using (warehousedbContext db = new warehousedbContext()) { if (platformView != null) // проверка на пустое значение { for (int i = 0; i < platformView.Length; i++) { // запрос аналогичный в OnSetCargo var platform = db.Platforms.Where(p => p.IdPlatform == db.Stocks.Where(s => s.NameStock == "Склад 1") .Where(s => s.Picket == platformView[i][0]) .Select(s => s.IdPlatform) .First()).First(); if (platform != null) { db.Platforms.Remove(platform); // удаляем из контекста } } } try { db.SaveChanges(); } catch (Exception ex) { ShowError(ex.Message); } } }
// обработчик события установки груза private void OnSetCargo(Object sender, EventArgs e) { // получаем от формы данные о грузе с помощью свойства Dictionary <int?[], int?> pairs_picket_cargo = _view.Cargo; // подключаемся к базе using (warehousedbContext db = new warehousedbContext()) { // проходим по всем ключам, ключ - список пикетов foreach (int?[] key in pairs_picket_cargo.Keys) { // запрос к таблице площадки, выборка Склада 1 где мы получаем первый элемент из таблицы площадок // по первому пикету из списка используя под запрос из таблицы "склады" var platform = db.Platforms.Where(p => p.IdPlatform == db.Stocks.Where(s => s.NameStock == "Склад 1") .Where(s => s.Picket == key[0]) .Select(s => s.IdPlatform) .First()).First(); // обновляем запись о грузе platform.Cargo = pairs_picket_cargo[key]; } try { // обработка исключений db.SaveChanges(); } catch (Exception ex) { // вывод сообщения исключения ShowError(ex.Message); } } // обновление вида UpdateView(); }