GetAll and ConvertToVM functions in AccountVM and ContactVM

pull/1/head
Sascha Woitschetzki 2021-06-23 12:10:43 +07:00 committed by Sascha Woitschetzki
parent 8be164c803
commit ac13aee422
5 changed files with 93 additions and 29 deletions

@ -31,9 +31,9 @@
<Button Content="Import Custom Descriptions from CSV..." Margin="10,5,10,5" Name="btnImportCDFromCSV" Click="BtnImportCDFromCSV_Click" />
</StackPanel>
<StackPanel x:Name="Work" Grid.Row="1" Grid.Column="1" Orientation="Vertical" >
<Button Content="Select a quote..." VerticalAlignment="top" Margin="10,5,10,3" Name="btnOpenQuote" Click="BtnOpenQuote_Click" />
<Button Content="Refresh Account List" VerticalAlignment="top" Margin="10,5,10,3" Name ="btnRefreshAccountList" Click="BtnRefreshAccountList_Click"/>
<Button Content="Test" VerticalAlignment="Top" Margin="10,50,10,3" Name="btnTest" Click="BtnTest_Click" Height="60" />
<Button Content="Select a quote..." VerticalAlignment="top" Margin="10,5,10,5" Name="btnOpenQuote" Click="BtnOpenQuote_Click" />
<Button Content="Show Account List" VerticalAlignment="top" Margin="10,5,10,5" Name ="btnShowAccountList" Click="BtnShowAccountList_Click"/>
<Button Content="Show Contact List" VerticalAlignment="top" Margin="10,5,10,5" Name ="btnShowContactList" Click="BtnShowContactList_Click"/>
<Button Content="Open QuoteUI" VerticalAlignment="top" Margin="10,5,10,5" Name="btnQuoteUI" Click="BtnQuoteUI_Click" />
</StackPanel>
<StackPanel x:Name="DB" Grid.Row="2" Grid.Column="2" Orientation="Vertical">

@ -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,18 +87,14 @@ namespace Gremlin.GremlinUI
_ = await DbHelper.ImportLSAGContactListToolDataAsync();
}
private void BtnRefreshAccountList_Click(object sender, RoutedEventArgs e)
{
ObservableCollection<Account> 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<AccountVM> accounts = new(AccountVM.GetAllAccountsVM());
dg_Test.ItemsSource = accounts;
}
private void BtnShowContactList_Click(object sender, RoutedEventArgs e)
{
ObservableCollection<ContactVM> contacts = new(ContactVM.GetAllContactsVM());
dg_Test.ItemsSource = contacts;
}
}
}

@ -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();

@ -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<Account> 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<ContactVM> Contacts { get; set; }
public AccountType AccountType { get; set; }
public SubMarket SubMarket { get; set; }
public static ObservableCollection<AccountVM> GetAllAccountsVM()
{
try
{
using (GremlinContext gremlinContext = new())
{
return new ObservableCollection<Account>(gremlinContext.Accounts.ToList());
List<Account> accounts = gremlinContext.Accounts.Include(account => account.Contacts).ToList();
ObservableCollection<AccountVM> 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<ContactVM> contactsVM = new();
foreach (Contact contact in account.Contacts)
{
contactsVM.Add(ContactVM.ConvertContactToVM(contact));
}
accountVM.Contacts = contactsVM;
return accountVM;
}
}
}

@ -121,33 +121,21 @@ namespace Gremlin.ViewModels
}
}
public static ObservableCollection<ContactVM> GetContacts()
public static ObservableCollection<ContactVM> GetAllContactsVM()
{
try
{
using (GremlinContext gremlinContext = new())
{
List<Contact> contacts = gremlinContext.Contacts.Include(contact => contact.Account).ToList();
ObservableCollection<ContactVM> contactsViewModel = new();
ObservableCollection<ContactVM> 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();