using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Media; using System.Windows; using System.Windows.Controls; using BeWo.ServiceProxy; using BeWo.Core.Service; using BS.Shared; using BS.Shared.DataContracts.Compact; namespace BeWo.View.Search { public class EmployeeSearchView : GenericSearchView { private CheckBox chkboxArchivierteMa = null; private bool _showArchived = false; public EmployeeSearchView() { if (!DesignerProperties.GetIsInDesignMode(this)) { ThemeColor = FindResource("EmployeeContentBrush") as Brush; } chkboxArchivierteMa = new CheckBox(); chkboxArchivierteMa.Margin = new Thickness(3); chkboxArchivierteMa.Height = 15; chkboxArchivierteMa.BorderThickness = new Thickness(0); chkboxArchivierteMa.HorizontalAlignment = HorizontalAlignment.Stretch; chkboxArchivierteMa.Content = BS.Shared.Translation.Translator.Translate("Archivierte Mitarbeiter anzeigen"); chkboxArchivierteMa.IsChecked = false; chkboxArchivierteMa.Foreground = Brushes.White; chkboxArchivierteMa.Visibility = Visibility.Collapsed; chkboxArchivierteMa.Checked += ChkboxArchivierteMa_CheckedChanged; chkboxArchivierteMa.Unchecked += ChkboxArchivierteMa_CheckedChanged; this.ContentGrid.Children.Add(chkboxArchivierteMa); } private void ChkboxArchivierteMa_CheckedChanged(object sender, RoutedEventArgs e) { base.UpdateFilteredList(); } public bool ShowArchived { get { return _showArchived; } set { _showArchived = value; chkboxArchivierteMa.Visibility = _showArchived ? Visibility.Visible : Visibility.Collapsed; } } protected override bool ShowDCInList(object dc) { var emp = dc as CompactEmployeeDC; if (emp != null) { if (ShowArchived && chkboxArchivierteMa.IsChecked.HasValue && !chkboxArchivierteMa.IsChecked.Value && emp.ActivationType != ActivationTypeId.Active) { return false; } } return base.ShowDCInList(dc); } public new SearchMode SearchMode { get; set; } protected override void GetAll(Action> pCallBack) { if (ShowArchived) { ServiceFacade.DoEmployeeServiceAsync( s => s.GetAllActiveAndArchivedEmployeesCompact(), r => { r.Sort((x, y) => (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName)); pCallBack(r); }); } else { if (SearchMode == SearchMode.OnlyTeamMember) { Cache.GetInstance().GetAllTeamMemberForEmployee(BeWoApp.LoggedOnUser.Employee, pCallBack); } else { Cache.GetInstance().GetAllActiveEmployeesCompact(pCallBack); } } } } }