//Сформировать объект с полей для ввода и отправить его в БД private void AddValueToBettingTable(object parameter) { //Проверяем поле ввода даты if (Validation.GetHasError(textBoxDate) || ActionStartDate <= DateTime.Parse("01.01.0001") || ActionStartDate == null) { MessageBox.Show("Неверный формат даты", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning); return; } //Проверяем поле ввода ставки if (Validation.GetHasError(textBox1) || BettingNumber == 0) { MessageBox.Show("Поле не может быть пустым или равно нулю", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (!Validation.GetHasError(textBox1) && !Validation.GetHasError(textBoxDate)) { //Вытаскиваем самую последнюю дату по текущей должности var selectMinDateBittingTable = BittingSource.Where(sh => sh.BettingId > 0 && sh.position == SelectedPositionItem). Max(lastDate => lastDate.actionStartDate); if (ActionStartDate <= selectMinDateBittingTable) { MessageBox.Show("Введенная дата не может быть раньше установленной даты!", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var newValueBetting = new Bettings() { BettingId = 0, position = SelectedPositionItem.ToString(), actionStartDate = ActionStartDate, Salary = BettingNumber }; //Вносим объект в базу данных и одновременно обновляем запись со стороны View BittingSource.Add(newValueBetting); contract.SetInsertValue(newValueBetting); // contract.ChangeEventList += Contract_ChangeEventList; ActionStartDate = DateTime.Parse("01/01/0001"); BettingNumber = 0; SelectedPositionItem = PositionSource[0]; MessageBox.Show("Данные успешно внесены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information); } }
//Сформировать объект с полей для ввода и отправить его в БД private void AddValueToSheduleTable(object parameter) { if (!Validation.GetHasError(textBoxCountPerson)) { var existItemInTable = SheduleSource.Where(sh => sh.position.PositionName == SelectedPositionItem && sh.departament.DepartamentName == SelectedDepartItem && sh.actionStartDate == SelectedDateItem.dateParam).FirstOrDefault(); if (existItemInTable == null) { //Получаем список отделов var getDeparts = contract.GetListDepartments() .Where(n => n.DepartamentName == SelectedDepartItem).FirstOrDefault(); //Получаем список должностей var getPositions = contract.GetListPositions() .Where(n => n.PositionName == SelectedPositionItem).FirstOrDefault(); var propertiesToInsert = new Shedule { SheduleId = 1, departament = getDeparts, position = getPositions, actionStartDate = SelectedDateItem.dateParam, countPerson = PeopleCount }; //Добавляем в коллекцию со стороны viewmodel -> view SheduleSource.Add(propertiesToInsert); //Отправляем данные в БД contract.SetInsertValue(propertiesToInsert); //Сбрасываем настройки по умолчанию SelectedPositionItem = PositionSource[0]; SelectedDepartItem = DepartamentSource[0]; MessageBox.Show("Данные успешно внесены.", "Информация", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Ошибка! Текуущая запись уже существует.", "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning); } } }