180 lines
6.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |