using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Linq.Expressions; using System.Data.Entity.Migrations; namespace ROGOZ.Pages { /// /// Логика взаимодействия для AddEditPage.xaml /// public partial class AddEditPage : Page { private user1Entities _context = new user1Entities(); private List listUsers = new List(); private Task _currentTask = null; public AddEditPage() { InitializeComponent(); //DPCreateDateTime.SelectedDate = DateTime.Today; //DPDeadLine.SelectedDate = DateTime.Today; DataContext = _currentTask; CmbStatus.ItemsSource = Status.FillStatus(); CmbTaskType.ItemsSource = WorkType.FillWorkType(); foreach (var user in _context.User.ToList()) { listUsers.Add(user.getFIO()); } CmbExecutor.ItemsSource = listUsers; } public AddEditPage(Task selectedTask) { InitializeComponent(); //DPCreateDateTime.DisplayDate = DateTime.Now.Date; //DPDeadLine.SelectedDate = DateTime.Today; _currentTask = selectedTask; CmbStatus.ItemsSource = Status.FillStatus(); CmbExecutor.Text = _currentTask.Executor.User.getFIO(); //CmbExecutor.ItemsSource = user1Entities.GetContext().Executor.ToList(); CmbTaskType.ItemsSource = WorkType.FillWorkType(); if (selectedTask != null) _currentTask = selectedTask; DataContext = _currentTask; foreach (var user in _context.User.ToList()) { listUsers.Add(user.getFIO()); } CmbExecutor.ItemsSource = listUsers; } private void BtnCancel_Click(object sender, RoutedEventArgs e) { NavigationService.GoBack(); } private string CheckErrors() { var errorBuilder = new StringBuilder(); if (string.IsNullOrWhiteSpace(TaskNameTB.Text)) errorBuilder.AppendLine("Укажите название заголовка!"); if (CmbStatus.Text == null) errorBuilder.AppendLine("Выберите статус!"); if (CmbTaskType.Text == null) errorBuilder.AppendLine("Выберите характеристику!"); if (errorBuilder.Length > 0) //проверка на ошибку { MessageBox.Show(errorBuilder.ToString()); return errorBuilder.ToString(); } else return null; } private void BtnSaveTask_Click(object sender, RoutedEventArgs e) { //var errorMessage = CheckErrors(); if (CheckErrors() == null) { if (_currentTask == null) { try { var selectedTask = new Task { //ExecutorID = int.Parse(CmbExecutor.Text), Executor = user1Entities.GetContext().Executor.FirstOrDefault(o=>o.User.getFIO()== CmbExecutor.Text), Title = TaskNameTB.Text, Description = TaskDescriptionTB.Text, CreateDateTime = DateTime.Parse(DPCreateDateTime.Text), Deadline = DateTime.Parse(DPDeadLine.Text), Difficulty = Double.Parse(DifficultyTB.Text), Time = int.Parse(TimeTB.Text), Status = CmbStatus.Text, WorkType = CmbTaskType.Text, IsDeleted = false }; user1Entities.GetContext().Task.Add(selectedTask); user1Entities.GetContext().SaveChanges(); MessageBox.Show("Задача добавлена"); NavigationService.GoBack(); } catch { MessageBox.Show(CheckErrors(), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } else { var context = user1Entities.GetContext(); context.SaveChanges(); MessageBox.Show("Задача отредактирована"); NavigationService.GoBack(); } } } } }