Files
BeWoPlaner/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstCustomerView.xaml.cs
2019-09-27 15:55:01 +02:00

180 lines
6.9 KiB
C#

using System.Collections.Generic;
using System.Windows;
using BeWo.ViewModel;
using BeWo.ServiceProxy;
using BS.Shared.Extensions;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Editors;
namespace BeWo.SchulbegleitenderDienst
{
public partial class SchulbegleitenderDienstCustomerView
{
private List<CompactTokenDC> tokenlist = new List<CompactTokenDC>();
readonly Dictionary<string, CompactTokenDC> verfuegbarerWunschToken = new Dictionary<string, CompactTokenDC>();
readonly Dictionary<string, CompactTokenDC> verfuegbarerAusschlussToken = new Dictionary<string, CompactTokenDC>();
private CustomerVM _ViewModel;
public SchulbegleitenderDienstCustomerView(CustomerVM customer)
{
InitializeComponent();
ViewModel = customer;
GetAllTokenItems();
}
public CustomerVM ViewModel
{
get => _ViewModel;
set
{
_ViewModel = value;
DataContext = value;
}
}
private void GetAllTokenItems()
{
tokenlist.Clear();
ServiceFacade.DoOperationsServiceAsync(r => r.GetAllTokens(SchulbegleitenderZugehoerigkeitsTyp.Klient, ViewModel.DataContract.CustomerOid.Value), h => this.Dispatch(delegate
{
tokenlist = h;
SetAusschlussKriterien();
SetWunschKriterien();
}));
}
private void SetAusschlussKriterien()
{
List<string> list = new List<string>();
List<string> valuelist = new List<string>();
if (tokenlist != null)
{
foreach (var token in tokenlist)
{
if (token.TokenType == TokenTyp.AusschlussKriterium && token.MemberOid == ViewModel.DataContract.CustomerOid.Value)
{
valuelist.Add(token.Beschreibung);
if (!verfuegbarerAusschlussToken.ContainsKey(token.Beschreibung))
verfuegbarerAusschlussToken.Add(token.Beschreibung, token);
}
else if (token.TokenType == TokenTyp.AusschlussKriterium)
{
list.Add(token.Beschreibung);
if (!verfuegbarerAusschlussToken.ContainsKey(token.Beschreibung))
verfuegbarerAusschlussToken.Add(token.Beschreibung, token);
}
}
}
// if(list.Count > 0)
ComboAusschlussAnzeige.ItemsSource = list;
// if (valuelist.Count > 0)
ComboAusschlussAnzeige.EditValue = valuelist;
}
private void SetWunschKriterien()
{
List<string> list = new List<string>();
List<string> valuelist = new List<string>();
if (tokenlist != null)
{
foreach (var token in tokenlist)
{
if (token.TokenType == TokenTyp.WunschKriterium && token.MemberOid == ViewModel.DataContract.CustomerOid.Value)
{
valuelist.Add(token.Beschreibung);
if (!verfuegbarerWunschToken.ContainsKey(token.Beschreibung))
verfuegbarerWunschToken.Add(token.Beschreibung, token);
}
else if (token.TokenType == TokenTyp.WunschKriterium)
{
list.Add(token.Beschreibung);
if (!verfuegbarerWunschToken.ContainsKey(token.Beschreibung))
verfuegbarerWunschToken.Add(token.Beschreibung, token);
}
}
}
if (list.Count > 0)
ComboWunschAnzeige.ItemsSource = list;
if(valuelist.Count > 0)
ComboWunschAnzeige.EditValue = valuelist;
}
private void TokenEditorWunschBehavior_OnTokensChanged(object sender, TokensChangedEventArgs e)
{
var x = e.AddedTokens;
var y = e.RemovedTokens;
if (x != null && x.Count > 0)
{
ServiceFacade.DoOperationsServiceSync(r=>r.DoTokenWunschOperation(1, ViewModel.DataContract.CustomerOid.Value, SchulbegleitenderZugehoerigkeitsTyp.Klient, verfuegbarerWunschToken,x[0].ToString()));
}
if (y != null && y.Count > 0)
{
ServiceFacade.DoOperationsServiceSync(r=>r.DoTokenWunschOperation(0, ViewModel.DataContract.CustomerOid.Value, SchulbegleitenderZugehoerigkeitsTyp.Klient, verfuegbarerWunschToken, y[0].ToString()));
}
}
private void TokenEditorAusschlussBehavior_OnTokensChanged(object sender, TokensChangedEventArgs e)
{
var x = e.AddedTokens;
var y = e.RemovedTokens;
if (x != null && x.Count > 0)
{
ServiceFacade.DoOperationsServiceSync(r => r.DoTokenAusschlussOperation(1, ViewModel.DataContract.CustomerOid.Value, SchulbegleitenderZugehoerigkeitsTyp.Klient, verfuegbarerWunschToken, x[0].ToString()));
}
if (y != null && y.Count > 0)
{
ServiceFacade.DoOperationsServiceSync(r => r.DoTokenAusschlussOperation(0, ViewModel.DataContract.CustomerOid.Value, SchulbegleitenderZugehoerigkeitsTyp.Klient, verfuegbarerWunschToken, y[0].ToString()));
}
}
private void ComboWunschAnzeige_OnIsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (ComboWunschAnzeige.IsKeyboardFocusWithin)
ComboWunschAnzeige.IsPopupOpen = true;
}
private void ComboAusschlussAnzeige_OnIsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (ComboAusschlussAnzeige.IsKeyboardFocusWithin)
ComboAusschlussAnzeige.IsPopupOpen = true;
}
private void SubstitutionNeedComboBox_OnSelectedIndexChanged(object sender, RoutedEventArgs e)
{
var comboBoxEdit = (ComboBoxEdit) sender;
if(comboBoxEdit.SelectedItem is KeyValuePair<SubstitutionNeed, string> keyValuePair)
{
AbWelchemTagCBox.Visibility = keyValuePair.Key == SubstitutionNeed.SubstitutionWanted || keyValuePair.Key == SubstitutionNeed.SubstitutionNeeded ? Visibility.Visible : Visibility.Collapsed;
AbWelchemTagLabel.Visibility = keyValuePair.Key == SubstitutionNeed.SubstitutionWanted || keyValuePair.Key == SubstitutionNeed.SubstitutionNeeded ? Visibility.Visible : Visibility.Collapsed;
}
}
}
}