103 lines
3.7 KiB
C#
103 lines
3.7 KiB
C#
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<CompactEmployeeDC>
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
|
|
public bool OnlyOwnChat { get; set; }
|
|
|
|
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<List<CompactEmployeeDC>> 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 (OnlyOwnChat)
|
|
{
|
|
ServiceFacade.DoEmployeeServiceAsync(s => s.GetAllChatActiveEmployeesCompact(), pCallBack);
|
|
}
|
|
else if (SearchMode == SearchMode.OnlyTeamMember)
|
|
{
|
|
Cache.GetInstance().GetAllTeamMemberForEmployee(BeWoApp.LoggedOnUser.Employee, pCallBack);
|
|
}
|
|
else
|
|
{
|
|
Cache.GetInstance().GetAllActiveEmployeesCompact(pCallBack);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |