diff --git a/Gremlin/GremlinUI/MainWindow.xaml b/Gremlin/GremlinUI/MainWindow.xaml
index bb8165d..470ee8e 100644
--- a/Gremlin/GremlinUI/MainWindow.xaml
+++ b/Gremlin/GremlinUI/MainWindow.xaml
@@ -31,9 +31,9 @@
-
-
-
+
+
+
diff --git a/Gremlin/GremlinUI/MainWindow.xaml.cs b/Gremlin/GremlinUI/MainWindow.xaml.cs
index 67c81df..77eeff2 100644
--- a/Gremlin/GremlinUI/MainWindow.xaml.cs
+++ b/Gremlin/GremlinUI/MainWindow.xaml.cs
@@ -3,6 +3,7 @@ using Gremlin.GremlinUtilities;
using Gremlin.GremlinData.EntityClasses;
using Gremlin.GremlinUI.ViewModels;
using Gremlin.Models;
+using Gremlin.ViewModels;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
@@ -86,17 +87,13 @@ namespace Gremlin.GremlinUI
_ = await DbHelper.ImportLSAGContactListToolDataAsync();
}
- private void BtnRefreshAccountList_Click(object sender, RoutedEventArgs e)
- {
- ObservableCollection accounts = new(AccountVM.GetAccounts());
- dg_Test.ItemsSource = accounts;
- }
-
private void BtnChooseDb_Click(object sender, RoutedEventArgs e)
{
ChooseDB chooseDB = new();
- if ((bool)chooseDB.ShowDialog())
+ if (chooseDB.ShowDialog() == true)
+ {
UpdateUI();
+ }
}
private void BtnResetDb_Click(object sender, RoutedEventArgs e)
@@ -137,5 +134,17 @@ namespace Gremlin.GremlinUI
QuoteUI quoteUI = new();
_ = quoteUI.ShowDialog();
}
+
+ private void BtnShowAccountList_Click(object sender, RoutedEventArgs e)
+ {
+ ObservableCollection accounts = new(AccountVM.GetAllAccountsVM());
+ dg_Test.ItemsSource = accounts;
+ }
+
+ private void BtnShowContactList_Click(object sender, RoutedEventArgs e)
+ {
+ ObservableCollection contacts = new(ContactVM.GetAllContactsVM());
+ dg_Test.ItemsSource = contacts;
+ }
}
}
diff --git a/Gremlin/GremlinUI/QuoteUI.xaml.cs b/Gremlin/GremlinUI/QuoteUI.xaml.cs
index 4a51559..328ad5f 100644
--- a/Gremlin/GremlinUI/QuoteUI.xaml.cs
+++ b/Gremlin/GremlinUI/QuoteUI.xaml.cs
@@ -29,7 +29,7 @@ namespace Gremlin.GremlinUI
private void LoadContacts()
{
- listCollectionContacts = new(ContactVM.GetContacts());
+ listCollectionContacts = new(ContactVM.GetAllContactsVM());
listCollectionContacts.Filter = ContactVM.SearchContact(listCollectionContacts, tbContactSearch.Text);
dgFoundContacts.ItemsSource = listCollectionContacts;
UpdateUI();
diff --git a/Gremlin/GremlinUI/ViewModels/AccountVM.cs b/Gremlin/GremlinUI/ViewModels/AccountVM.cs
index 6d727ff..1c7c998 100644
--- a/Gremlin/GremlinUI/ViewModels/AccountVM.cs
+++ b/Gremlin/GremlinUI/ViewModels/AccountVM.cs
@@ -1,6 +1,9 @@
using Gremlin.GremlinData.DBClasses;
using Gremlin.GremlinData.EntityClasses;
+using Gremlin.ViewModels;
+using Microsoft.EntityFrameworkCore;
using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@@ -8,13 +11,34 @@ namespace Gremlin.GremlinUI.ViewModels
{
internal class AccountVM : BaseVM
{
- public static ObservableCollection GetAccounts()
+ public uint SAPAccountNumber { get; set; }
+ public string AccountName { get; set; }
+ public string Street { get; set; }
+ public uint ZIP { get; set; }
+ public string City { get; set; }
+ public string PhoneNumber { get; set; }
+ public string FaxNumber { get; set; }
+ public string Webpage { get; set; }
+ public string EMail { get; set; }
+ public ICollection Contacts { get; set; }
+ public AccountType AccountType { get; set; }
+ public SubMarket SubMarket { get; set; }
+
+ public static ObservableCollection GetAllAccountsVM()
{
try
{
using (GremlinContext gremlinContext = new())
{
- return new ObservableCollection(gremlinContext.Accounts.ToList());
+ List accounts = gremlinContext.Accounts.Include(account => account.Contacts).ToList();
+ ObservableCollection accountsVM = new();
+
+ foreach (Account account in accounts)
+ {
+ accountsVM.Add(ConvertAccountToVM(account));
+ }
+
+ return accountsVM;
}
}
catch (Exception ex)
@@ -24,5 +48,31 @@ namespace Gremlin.GremlinUI.ViewModels
throw;
}
}
+
+ public static AccountVM ConvertAccountToVM(Account account)
+ {
+ AccountVM accountVM = new();
+
+ accountVM.AccountType = account.AccountType;
+ accountVM.SubMarket = account.SubMarket;
+ accountVM.AccountName = account.AccountName;
+ accountVM.Street = account.Street;
+ accountVM.ZIP = account.ZIP;
+ accountVM.City = account.City;
+ accountVM.PhoneNumber = account.PhoneNumber;
+ accountVM.FaxNumber = account.FaxNumber;
+ accountVM.Webpage = account.Webpage;
+ accountVM.EMail = account.EMail;
+ accountVM.SAPAccountNumber = account.SAPAccountNumber;
+
+ List contactsVM = new();
+ foreach (Contact contact in account.Contacts)
+ {
+ contactsVM.Add(ContactVM.ConvertContactToVM(contact));
+ }
+ accountVM.Contacts = contactsVM;
+
+ return accountVM;
+ }
}
}
\ No newline at end of file
diff --git a/Gremlin/GremlinUI/ViewModels/ContactVM.cs b/Gremlin/GremlinUI/ViewModels/ContactVM.cs
index 93915d0..bb18d07 100644
--- a/Gremlin/GremlinUI/ViewModels/ContactVM.cs
+++ b/Gremlin/GremlinUI/ViewModels/ContactVM.cs
@@ -121,33 +121,21 @@ namespace Gremlin.ViewModels
}
}
- public static ObservableCollection GetContacts()
+ public static ObservableCollection GetAllContactsVM()
{
try
{
using (GremlinContext gremlinContext = new())
{
List contacts = gremlinContext.Contacts.Include(contact => contact.Account).ToList();
- ObservableCollection contactsViewModel = new();
+ ObservableCollection contactsVM = new();
foreach (Contact contact in contacts)
{
- ContactVM contactViewModel = new();
- contactViewModel.Gender = contact.Gender;
- contactViewModel.LastName = contact.LastName;
- contactViewModel.FirstName = contact.FirstName;
- contactViewModel.EMail = contact.EMail;
- if (contact.Account != null)
- {
- contactViewModel.AccountName = contact.Account.AccountName;
- contactViewModel.AccountStreet = contact.Account.Street;
- contactViewModel.AccountZIP = contact.Account.ZIP;
- contactViewModel.AccountCity = contact.Account.City;
- }
- contactsViewModel.Add(contactViewModel);
+ contactsVM.Add(ConvertContactToVM(contact));
}
- return contactsViewModel;
+ return contactsVM;
}
}
catch (Exception ex)
@@ -158,6 +146,23 @@ namespace Gremlin.ViewModels
}
}
+ public static ContactVM ConvertContactToVM(Contact contact)
+ {
+ ContactVM contactVM = new();
+ contactVM.Gender = contact.Gender;
+ contactVM.LastName = contact.LastName;
+ contactVM.FirstName = contact.FirstName;
+ contactVM.EMail = contact.EMail;
+ if (contact.Account != null)
+ {
+ contactVM.AccountName = contact.Account.AccountName;
+ contactVM.AccountStreet = contact.Account.Street;
+ contactVM.AccountZIP = contact.Account.ZIP;
+ contactVM.AccountCity = contact.Account.City;
+ }
+ return contactVM;
+ }
+
internal static StringBuilder CreateBriefkopf(ContactVM contactVM, bool tex = false)
{
StringBuilder briefkopf = new();