diff --git a/eCompanies/App.xaml.cs b/eCompanies/App.xaml.cs index 55d6a60..a30ee0f 100644 --- a/eCompanies/App.xaml.cs +++ b/eCompanies/App.xaml.cs @@ -24,7 +24,7 @@ namespace eCompanies return new HashSet(db.Users.Where(b => b.CompanyId.Equals(id))); } - private void addCompany(Company c) + public static void addCompany(Company c) { using (var db = new CompaniesDBContext()) { @@ -42,6 +42,15 @@ namespace eCompanies } } + public static void updateCompany1(Company c) + { + //using (var db = new CompaniesDBContext()) + //{ + // var x = db.Company.Where(i => i.CompanyId.Equals(c.CompanyId)); + // foreach (Company t in x) t = c; + //} + } + public static void removeCompany(int id) { using (var db = new CompaniesDBContext()) diff --git a/eCompanies/CompaniesDBContext.cs b/eCompanies/CompaniesDBContext.cs index b133db6..4f02394 100644 --- a/eCompanies/CompaniesDBContext.cs +++ b/eCompanies/CompaniesDBContext.cs @@ -38,6 +38,7 @@ namespace eCompanies entity.Property(e => e.Name).IsRequired(); entity.Ignore("contract"); + entity.Ignore("needUpdate"); }); modelBuilder.Entity(entity => diff --git a/eCompanies/Company.cs b/eCompanies/Company.cs index 454653d..e22b093 100644 --- a/eCompanies/Company.cs +++ b/eCompanies/Company.cs @@ -16,5 +16,8 @@ namespace eCompanies public string Name { get; set; } public int ContractStatus { get; set; } public ICollection Users { get; set; } + + + public bool needUpdate { get; set; } } } diff --git a/eCompanies/MainWindow.xaml b/eCompanies/MainWindow.xaml index d9f1462..5c11e9e 100644 --- a/eCompanies/MainWindow.xaml +++ b/eCompanies/MainWindow.xaml @@ -8,7 +8,7 @@ Title="MainWindow" Height="450" Width="800" Closing="Window_Closing"> + Width="772" ItemsSource="{Binding}" AutoGenerateColumns="False" CellEditEnding="companyGrid_CellEditEnding"> diff --git a/eCompanies/MainWindow.xaml.cs b/eCompanies/MainWindow.xaml.cs index 85ea9ef..b992705 100644 --- a/eCompanies/MainWindow.xaml.cs +++ b/eCompanies/MainWindow.xaml.cs @@ -2,17 +2,8 @@ using System.Collections.Generic; using System.Collections.ObjectModel; 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; namespace eCompanies { @@ -22,9 +13,8 @@ namespace eCompanies public delegate void UpdateCompanyGridDelegate(Company updatingCompany); public partial class MainWindow : Window { - List deletingCompanyList = new List(); - List updatingCompanyList = new List(); UsersWindow usersWindowInstance = null; + List deletingCompanyList = new List(); public MainWindow() { @@ -35,7 +25,7 @@ namespace eCompanies private void updateCompanyItem(Company updatingCompany) { if (updatingCompany == null) return; - updatingCompanyList.Add(updatingCompany.CompanyId); + updatingCompany.needUpdate = true; var context = ((ObservableCollection)companyGrid.DataContext).ToList(); for (int i = 0; i < context.Count; i++) { @@ -43,7 +33,6 @@ namespace eCompanies { context[i] = updatingCompany; companyGrid.DataContext = new ObservableCollection(context); - updatingCompanyList.Add(updatingCompany.CompanyId); return; } } @@ -108,13 +97,18 @@ namespace eCompanies else if (mbr == MessageBoxResult.No) return; } - - if (deletingCompanyList != null) - App.removeCompany(deletingCompanyList); - deletingCompanyList = null; - // TODO: реализация обновления старых компаний и добавления новых + if (c.CompanyId == 0) + App.addCompany(c); + else if (c.needUpdate) + App.updateCompany(c); } + if (deletingCompanyList != null) + App.removeCompany(deletingCompanyList); + } + private void companyGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) + { + ((Company)e.Row.Item).needUpdate = true; } } }