diff --git a/eCompanies/App.xaml.cs b/eCompanies/App.xaml.cs index 7eb1fc0..3d78758 100644 --- a/eCompanies/App.xaml.cs +++ b/eCompanies/App.xaml.cs @@ -19,7 +19,7 @@ namespace eCompanies { using (var db = new CompaniesDBContext()) { - db.Companies.Add(new Companies { Name = "Unknown company", ContractStatus = (int) Status.NotReachedYet }); + db.Companies.Add(c); var count = db.SaveChanges(); } } diff --git a/eCompanies/Companies.cs b/eCompanies/Companies.cs index e3fcff6..623aa53 100644 --- a/eCompanies/Companies.cs +++ b/eCompanies/Companies.cs @@ -3,14 +3,16 @@ using System.Collections.Generic; namespace eCompanies { - public enum Status { NotReachedYet, Reached, Terminated } public partial class Companies { public Companies() { Users = new HashSet(); + contract = new Contract(this); } + + public Contract contract { get; set; } public int CompanyId { get; set; } public string Name { get; set; } public int ContractStatus { get; set; } diff --git a/eCompanies/CompaniesDBContext.cs b/eCompanies/CompaniesDBContext.cs index ad10a8b..21b11e7 100644 --- a/eCompanies/CompaniesDBContext.cs +++ b/eCompanies/CompaniesDBContext.cs @@ -34,8 +34,10 @@ namespace eCompanies entity.Property(e => e.ContractStatus) .IsRequired(); - + entity.Property(e => e.Name).IsRequired(); + + entity.Ignore("contract"); }); modelBuilder.Entity(entity => diff --git a/eCompanies/Contract.cs b/eCompanies/Contract.cs new file mode 100644 index 0000000..adee97f --- /dev/null +++ b/eCompanies/Contract.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace eCompanies +{ + public enum Status { NotReachedYet, Reached, Terminated } + public class Contract + { + private Companies c { get; set; } + public Contract (Companies c) + { + this.c = c; + } + public string ContractStatusString + { + get + { + switch (c.CompanyId) + { + case 1: return "Заключен"; + case 2: return "Расторгнут"; + default: return "Еще не заключен"; + } + } + set + { + + } + } + + public Status ContractStatusId + { + get { return (Status)c.ContractStatus; } + set { c.ContractStatus = (int)value; } + } + } +} diff --git a/eCompanies/MainWindow.xaml b/eCompanies/MainWindow.xaml index bc4c4bc..667fc1e 100644 --- a/eCompanies/MainWindow.xaml +++ b/eCompanies/MainWindow.xaml @@ -5,6 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:eCompanies" xmlns:core="clr-namespace:System;assembly=mscorlib" + xmlns:col="clr-namespace:System.Collections;assembly=mscorlib" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> @@ -18,8 +19,11 @@ - - + + + diff --git a/eCompanies/MainWindow.xaml.cs b/eCompanies/MainWindow.xaml.cs index 4aa6fa9..0b0dac1 100644 --- a/eCompanies/MainWindow.xaml.cs +++ b/eCompanies/MainWindow.xaml.cs @@ -35,10 +35,15 @@ namespace eCompanies private void companyGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) { - Companies company = (Companies)companyGrid.CurrentItem; - if (usersWindowInstance != null) usersWindowInstance.Close(); - usersWindowInstance = new UsersWindow(company); - usersWindowInstance.Show(); + try + { + Companies company = (Companies)companyGrid.CurrentItem; + if (usersWindowInstance != null) usersWindowInstance.Close(); + usersWindowInstance = new UsersWindow(company); + usersWindowInstance.Show(); + } + catch { } } + } } diff --git a/eCompanies/eCompanies.csproj b/eCompanies/eCompanies.csproj index 6b6e5a9..99e9b44 100644 --- a/eCompanies/eCompanies.csproj +++ b/eCompanies/eCompanies.csproj @@ -139,6 +139,7 @@ Designer + UsersWindow.xaml