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.Shapes;
namespace Курсовой_проект_3._1.Windows
{
///
/// Логика взаимодействия для CreateTeamWindow.xaml
///
public partial class CreateTeamWindow : Window
{
MyTeamContext _context;
bool isPhotoChanged;
public CreateTeamWindow()
{
InitializeComponent();
isPhotoChanged = false;
_context = new MyTeamContext();
PhoneNumberTBox.Text = "+" + _context.Users.Find(App.UserId).PhoneNumber;
EmailTBox.Text = _context.Users.Find(App.UserId).Email;
}
private void CreateBtn_Click(object sender, RoutedEventArgs e)
{
// инициализируем переменные
string teamName = TeamNameTBox.Text;
string email = EmailTBox.Text;
string phoneNumber = PhoneNumberTBox.Text.Trim('+');
string about = AboutTBox.txtLimitedInput.Text;
// проверка на заполнение всех полей
if (string.IsNullOrWhiteSpace(teamName))
{
MessageBox.Show("Название команды должно быть заполнено!");
return;
}
if (email != String.Empty)
{
if (!Func.IsValidEmail(email))
{
MessageBox.Show("Некорректный Email!");
return;
}
}
if (phoneNumber != String.Empty)
{
if (!Func.IsValidPhoneNumber(phoneNumber))
{
MessageBox.Show("Некорректный номер телефона!");
return;
}
}
// проверка на уникальность email
if (_context.Teams.Where(t => t.Email == email).ToList().Count() != 0)
{
MessageBox.Show("Email занят!");
return;
}
// проверка, на уникальность номера телефона
if (_context.Teams.Where(t => t.PhoneNumber == phoneNumber).ToList().Count() != 0)
{
MessageBox.Show("Номер телефона занят!");
return;
}
// проверка, есть ли команда с таким названием
if (_context.Teams.Where(t => t.Name == teamName).ToList().Count() != 0)
{
MessageBox.Show("Команда с таким названием уже существует!");
return;
}
// создаем новый объект Teams
Teams team = new Teams();
team.Name = teamName;
team.FoundationDate = DateTime.Now;
team.FK_Creater_Id = App.UserId;
team.FK_Country_Id = _context.Users.Find(App.UserId).Countries.Id;
if (!string.IsNullOrWhiteSpace(email))
{
team.Email = email;
}
if (!string.IsNullOrWhiteSpace(phoneNumber))
{
team.PhoneNumber = phoneNumber;
}
if (!string.IsNullOrWhiteSpace(about))
{
team.About = about;
}
if (isPhotoChanged)
{
team.LogoPath = LogoImg.Source.ToString();
}
// создаем новый объект TeamsUsers
TeamsUsers teamUser = new TeamsUsers();
teamUser.FK_Team_Id = team.Id;
teamUser.FK_User_Id = App.UserId;
teamUser.DateStart = DateTime.Now;
_context.Teams.Add(team);
_context.TeamsUsers.Add(teamUser);
_context.SaveChanges();
TeamProfileWindow tWnd = new TeamProfileWindow(team.Id);
tWnd.Show();
foreach (var wnd in Application.Current.Windows)
{
if (wnd is ApplicationWindow)
{
ApplicationWindow appWnd = (ApplicationWindow)wnd;
appWnd.Close();
}
}
Close();
}
private void ChangeLogoBtn_Click(object sender, RoutedEventArgs e)
{
// Создаем OpenFileDialog
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
// Устанавливаем фильтры и стандартное расширение файла
dlg.DefaultExt = ".png";
dlg.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
// Отображаем OpenFileDialog
Nullable result = dlg.ShowDialog();
// Получаем и устанавливаем новое изображение
if (result == true)
{
// Open document
string filename = dlg.FileName;
LogoImg.Source = new BitmapImage(new Uri(filename));
isPhotoChanged = true;
}
}
}
}