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 tokenlist = new List(); readonly Dictionary verfuegbarerWunschToken = new Dictionary(); readonly Dictionary verfuegbarerAusschlussToken = new Dictionary(); 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 list = new List(); List valuelist = new List(); 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 list = new List(); List valuelist = new List(); 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 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; } } } }