Files
BeWoPlaner/Service/Plugins/EmployeeService.cs

109 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.MessageContracts;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Services;
using Utils = BeWo.Service.Core.Utils;
namespace BeWo.Service.Plugins
{
public class EmployeeService : AbstractIDSpecificDefaultClass<EmployeeService>
{
public virtual long InsertNewEmployee(EmployeeDC pEmployeeDC)
{
Employee lEmployee = MapperFactory.EmployeeDC_Employee.MapToNewEntity(pEmployeeDC);
DAOFactory.GenericDAO.Insert(lEmployee);
return lEmployee.Oid.Value;
}
public virtual List<CompactEmployeeDC> GetAllActiveEmployeesCompact()
{
return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Employee>());
}
public virtual List<CompactEmployeeDC> GetAllActiveAndArchivedEmployeesCompact()
{
return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(DAOFactory.GenericDAO.GetAllActiveAndArchived<Employee>());
}
public virtual List<CompactTeamDC> GetAllTeamsCompact()
{
if (Utils.UserHasRight(LoggedInUserOperationContextExt.Current.User, UserRightType.TeamView_ViewAll))
{
return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Team>());
}
if (Utils.UserHasRight(LoggedInUserOperationContextExt.Current.User, UserRightType.TeamView_ViewMyTeams))
{
var teams = DAOFactory.SearchDAO.FindAllActiveTeamsOfEmployee(LoggedInUserOperationContextExt.Current.User.Employee.Oid.Value);
return MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams);
}
return new List<CompactTeamDC>();
}
//Für Main Navigation View
public virtual List<CompactEmployeeDC> GetAllCompactEmployees()
{
var employees = DAOFactory.GenericDAO.GetAll<Employee>();
var dcs = MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(employees);
var teams = GetAllTeamsCompact();
var teamDCs = new List<TeamDC>();
foreach (var ct in teams)
teamDCs.Add(MapperFactory.TeamDC_Team.MapToNewDC(DAOFactory.GenericDAO.GetByID<Team>(ct.TeamOid)));
foreach (var dc in dcs)
{
foreach (var tDC in teamDCs)
{
if (tDC.Member.Contains(dc))
{
if (dc.TeamOids == null)
dc.TeamOids = new List<long>();
if (!dc.TeamOids.Contains(tDC.TeamOid.Value))
dc.TeamOids.Add(tDC.TeamOid.Value);
}
}
if (dc.TeamOids != null)
{
foreach (var oid in dc.TeamOids)
{
var team = teamDCs.FirstOrDefault(t => t.TeamOid == oid);
if (team != null)
{
if (dc.RelatedTeams == null)
dc.RelatedTeams = "Teams: " + team.Name + ", ";
else
dc.RelatedTeams += team.Name + ", ";
}
}
if (dc.RelatedTeams != null && dc.RelatedTeams.Length > 0)
dc.RelatedTeams = dc.RelatedTeams.Remove(dc.RelatedTeams.Length - 2, 1);
}
}
return dcs;
}
}
}