54 lines
1.7 KiB
C#
54 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using BeWo.Data;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Data.Security;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BeWo.Service.Plugins;
|
|
using BS.Shared;
|
|
using BS.Shared.DataContracts.Compact;
|
|
using DevExpress.Data.Browsing;
|
|
|
|
namespace PerspektivenEV.Service
|
|
{
|
|
public class CustomEmployeeService : EmployeeService
|
|
{
|
|
public override List<CompactEmployeeDC> GetAllActiveEmployeesCompact()
|
|
{
|
|
var employees = DAOFactory.GenericDAO.GetAllActive<Employee>();
|
|
|
|
var filteredEmployees = FilterList(employees);
|
|
if (filteredEmployees.Count == 0)
|
|
{
|
|
filteredEmployees = FilterTeamList(employees);
|
|
}
|
|
return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(filteredEmployees);
|
|
}
|
|
|
|
public static IList<Employee> FilterTeamList(IList<Employee> employees)
|
|
{
|
|
List<Employee> newList = new List<Employee>();
|
|
|
|
var loggedInUser = UserRightHelper.GetLoggedInUser();
|
|
|
|
var teams = DAOFactory.SearchDAO.FindAllActiveTeamsOfEmployee(loggedInUser.Employee.Oid.Value);
|
|
|
|
foreach (var e in employees)
|
|
{
|
|
if (BelongsToTeam(teams, loggedInUser, e))
|
|
{
|
|
newList.Add(e);
|
|
}
|
|
}
|
|
|
|
return newList;
|
|
}
|
|
|
|
public override List<CompactEmployeeDC> GetAllActiveAndArchivedEmployeesCompact()
|
|
{
|
|
var employees = DAOFactory.GenericDAO.GetAllActiveAndArchived<Employee>();
|
|
return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(FilterList(employees));
|
|
}
|
|
|
|
}
|
|
} |