Files
BeWoPlaner/BeWo/View/Search/EmployeeSearchView.cs
2025-10-24 02:02:09 +02:00

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);
}
}
}
}
}