From cc91012904587d7ed8279bdc10729c2ccd9cafcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0?= Date: Tue, 23 Oct 2018 01:28:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BF=D0=B0=D0=BD=D0=B8=D0=B9=20=D0=B8=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=BA=D0=BE=D0=BD=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D0=BD=D0=BE=D0=B5=20=D0=BC=D0=B5=D0=BD=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eCompanies/App.xaml.cs | 19 +++++++++++++++++++ eCompanies/MainWindow.xaml | 16 ++++++++++++++-- eCompanies/MainWindow.xaml.cs | 17 ++++++++++++++--- eCompanies/UsersWindow.xaml | 11 +++++++++++ eCompanies/UsersWindow.xaml.cs | 27 +++++++++++++++++++-------- 5 files changed, 77 insertions(+), 13 deletions(-) diff --git a/eCompanies/App.xaml.cs b/eCompanies/App.xaml.cs index fa4af0d..bc98476 100644 --- a/eCompanies/App.xaml.cs +++ b/eCompanies/App.xaml.cs @@ -41,5 +41,24 @@ namespace eCompanies } } + public static void removeCompany(Company c) + { + using (var db = new CompaniesDBContext()) + { + db.Company.Remove(c); + db.SaveChanges(); + } + } + + public static void removeUser(int id) + { + using (var db = new CompaniesDBContext()) + { + var x = db.Users.Where(s => s.UserId.Equals(id)); + foreach (Users u in x) db.Users.Remove(u); + db.SaveChanges(); + } + } + } } diff --git a/eCompanies/MainWindow.xaml b/eCompanies/MainWindow.xaml index 469b7f0..1e8ed59 100644 --- a/eCompanies/MainWindow.xaml +++ b/eCompanies/MainWindow.xaml @@ -6,8 +6,20 @@ xmlns:local="clr-namespace:eCompanies" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> - - + + + + + + + + + + + diff --git a/eCompanies/MainWindow.xaml.cs b/eCompanies/MainWindow.xaml.cs index 4bafa0c..99c0846 100644 --- a/eCompanies/MainWindow.xaml.cs +++ b/eCompanies/MainWindow.xaml.cs @@ -19,6 +19,7 @@ namespace eCompanies /// /// Логика взаимодействия для MainWindow.xaml /// + public delegate void UpdateCompanyGridDelegate(); public partial class MainWindow : Window { UsersWindow usersWindowInstance = null; @@ -33,17 +34,27 @@ namespace eCompanies companyGrid.DataContext = App.getCompanies(); } - private void companyGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) + private void RowEdit_Click(object sender, RoutedEventArgs e) { try { + UpdateCompanyGridDelegate d = updateCompanyGrid; Company company = (Company)companyGrid.CurrentItem; if (usersWindowInstance != null) usersWindowInstance.Close(); - usersWindowInstance = new UsersWindow(company); + usersWindowInstance = new UsersWindow(company, d); usersWindowInstance.Show(); } catch { } } - + + private void RowDelete_Click(object sender, RoutedEventArgs e) + { + try + { + Company company = (Company)companyGrid.CurrentItem; + App.removeCompany(company); + } + catch { } + } } } diff --git a/eCompanies/UsersWindow.xaml b/eCompanies/UsersWindow.xaml index 9f3de70..60b796d 100644 --- a/eCompanies/UsersWindow.xaml +++ b/eCompanies/UsersWindow.xaml @@ -18,6 +18,17 @@ + + + + + + + + diff --git a/eCompanies/UsersWindow.xaml.cs b/eCompanies/UsersWindow.xaml.cs index 8c4d519..e73c2b5 100644 --- a/eCompanies/UsersWindow.xaml.cs +++ b/eCompanies/UsersWindow.xaml.cs @@ -13,34 +13,39 @@ namespace eCompanies public partial class UsersWindow : Window { Company currentCompany; - public UsersWindow(Company c) + UpdateCompanyGridDelegate updateCompanyGrid; + public UsersWindow(Company c, UpdateCompanyGridDelegate d) { InitializeComponent(); currentCompany = c; - currentCompany.Users = App.getUsers(currentCompany.CompanyId); - companyNameBox.Text = c.Name; - contractStatusComboBox.SelectedIndex = c.ContractStatus; - usersGrid.DataContext = new ObservableCollection(c.Users.AsEnumerable()); + updateCompanyGrid = d; + updateUsersGrid(); } - private void usersGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) + private void updateUsersGrid() { + currentCompany.Users = App.getUsers(currentCompany.CompanyId); + companyNameBox.Text = currentCompany.Name; + contractStatusComboBox.SelectedIndex = currentCompany.ContractStatus; + usersGrid.DataContext = new ObservableCollection(currentCompany.Users.AsEnumerable()); } + private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { MessageBoxResult mbr = MessageBox.Show("Вы закрываете окно с компанией. Хотите сохранить результаты?", "Сохранение изменений", MessageBoxButton.YesNo); if (mbr == MessageBoxResult.No) return; - currentCompany.ContractStatus = contractStatusComboBox.SelectedIndex; - currentCompany.Name = companyNameBox.Text; foreach (Users u in (ObservableCollection)usersGrid.DataContext) { u.CompanyId = currentCompany.CompanyId; u.Company = currentCompany; currentCompany.Users.Add(u); } + currentCompany.ContractStatus = contractStatusComboBox.SelectedIndex; + currentCompany.Name = companyNameBox.Text; App.updateCompany(currentCompany); + updateCompanyGrid(); } private void usersGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) @@ -50,5 +55,11 @@ namespace eCompanies private void usersGrid_AddingNewItem(object sender, AddingNewItemEventArgs e) { } + + private void RowDelete_Click(object sender, RoutedEventArgs e) + { + App.removeUser(((Users)usersGrid.CurrentItem).UserId); + updateUsersGrid(); + } } }