123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- using System.Text.RegularExpressions;
- namespace Cafe.AddWindows
- {
- public partial class AddExchangeWindow : Window
- {
- public AddExchangeWindow()
- {
- InitializeComponent();
- EmployeeBox.ItemsSource = Connection.db.Users.Where(item => item.IDRole != 1).Select(item => item.Login).ToList();
- }
- private void DateTextChanged(object sender, TextChangedEventArgs e)
- {
- if (Regex.IsMatch((((TextBox)sender).Text).ToString(), "[^0-9.]"))
- {
- ((TextBox)sender).Text = ((TextBox)sender).Text.Remove(((TextBox)sender).Text.Length - 1);
- ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
- }
- }
- private void TimeTextChanged(object sender, TextChangedEventArgs e)
- {
- if (Regex.IsMatch((((TextBox)sender).Text).ToString(), "[^0-9:]"))
- {
- ((TextBox)sender).Text = ((TextBox)sender).Text.Remove(((TextBox)sender).Text.Length - 1);
- ((TextBox)sender).SelectionStart = ((TextBox)sender).Text.Length;
- }
- }
- private void AddEmployeeClick(object sender, RoutedEventArgs e)
- {
- if (EmployeeBox.SelectedItem == null)
- {
- ErrorWindow errorWindow = new ErrorWindow("не выбрано работник");
- errorWindow.Show();
- return;
- }
- Users employee = Connection.db.Users.Where(item => item.Login == EmployeeBox.SelectedItem.ToString()).FirstOrDefault();
- EmployeeBox.SelectedItem = null;
- EmployeeBox.ItemsSource = Connection.db.Users.Where(item => item.Login != employee.Login && item.IDRole != 1).Select(item => item.Login).ToList();
- EmployeesList.Items.Add(employee);
- }
- private void SaveExchangeClick(object sender, RoutedEventArgs e)
- {
- if (EmployeesList.Items == null)
- {
- ErrorWindow errorWindow = new ErrorWindow("не выбрано ни одного работника");
- errorWindow.Show();
- return;
- }
- if (Date.Text == "" || TimeOfBegin.Text == "" || TimeOfEnd.Text == "")
- {
- ErrorWindow errorWindow = new ErrorWindow("не выбрано время");
- errorWindow.Show();
- return;
- }
- TimeSpan timeOfBeginResult;
- if (!TimeSpan.TryParse(TimeOfBegin.Text, out timeOfBeginResult) || TimeOfBegin.Text.Count(item => item == ':') != 1)
- {
- ErrorWindow errorWindow = new ErrorWindow("неверно указано время начала");
- errorWindow.Show();
- return;
- }
- TimeSpan timeOfEndResult;
- if (!TimeSpan.TryParse(TimeOfEnd.Text, out timeOfEndResult) || TimeOfEnd.Text.Count(item => item == ':') != 1)
- {
- ErrorWindow errorWindow = new ErrorWindow("неверно указано время окончания");
- errorWindow.Show();
- return;
- }
- DateTime dateResult;
- if (!DateTime.TryParse(Date.Text, out dateResult) || Date.Text.Count(item => item == '.') != 2)
- {
- ErrorWindow errorWindow = new ErrorWindow("неверно указана дата");
- errorWindow.Show();
- return;
- }
- List<Exchange> allExchangesOnDate = Connection.db.Exchange.Where(item => item.Date == dateResult).ToList();
- if (allExchangesOnDate.Exists(item => (item.TimeOfBegin <= timeOfBeginResult && item.TimeOfEnd >= timeOfBeginResult)
- || (item.TimeOfBegin <= timeOfEndResult && item.TimeOfEnd >= timeOfEndResult)))
- {
- ErrorWindow errorWindow = new ErrorWindow("на это время уже запланирована смена");
- errorWindow.Show();
- return;
- }
- if (dateResult.Date - DateTime.Now.Date > new TimeSpan(5, 0, 0, 0))
- {
- ErrorWindow errorWindow = new ErrorWindow("можно сформировать рассписание тольок на 5 дней вперёд");
- errorWindow.Show();
- return;
- }
- Exchange exchange = new Exchange()
- {
- Date = dateResult.Date,
- TimeOfBegin = timeOfBeginResult,
- TimeOfEnd = timeOfEndResult
- };
- Connection.db.Exchange.Add(exchange);
- Connection.db.SaveChanges();
- int idExchange = Connection.db.Exchange.Select(item => item.ID).ToList().Last();
- foreach (var item in EmployeesList.Items)
- {
- EmployeesExchanges employeesExchanges = new EmployeesExchanges()
- {
- IDEmployee = ((Users)item).ID,
- IDExchange = idExchange
- };
- Connection.db.EmployeesExchanges.Add(employeesExchanges);
- Connection.db.SaveChanges();
- }
- MainWindow mainWindow = new MainWindow();
- mainWindow.Show();
- this.Close();
- }
- private void BackButtonClick(object sender, RoutedEventArgs e)
- {
- MainWindow mainWindow = new MainWindow();
- mainWindow.Show();
- this.Close();
- }
- }
- }
|