From fb818661b1c71c1ddf08c575eeaef756b06bb6cf Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Tue, 9 Sep 2025 14:57:45 +0200 Subject: [PATCH] ServiceREcord fehlt noch --- AICore/Prompt/Factories/AiPromptFactory.cs | 2 +- BeWo/BeWo.csproj | 2 +- BeWo/Properties/Resources.Designer.cs | 2 +- BeWo/Properties/Settings.Designer.cs | 2 +- BeWo/ServiceProxy/ServiceFacade.cs | 1 - BeWo/Services/BeWoControlFactory.cs | 24 - BeWo/app.config | 58 +- BeWo/packages.config | 8 +- Controls/Controls.csproj | 2 +- Controls/Properties/Resources.Designer.cs | 2 +- Controls/Properties/Settings.Designer.cs | 2 +- Service/Plugins/AiService2.cs | 12 +- .../EmployeeServiceImp.cs | 3605 +++++++++-------- 13 files changed, 1850 insertions(+), 1872 deletions(-) diff --git a/AICore/Prompt/Factories/AiPromptFactory.cs b/AICore/Prompt/Factories/AiPromptFactory.cs index 9b7bfc46a..f260d31ac 100644 --- a/AICore/Prompt/Factories/AiPromptFactory.cs +++ b/AICore/Prompt/Factories/AiPromptFactory.cs @@ -173,7 +173,7 @@ namespace AICore.Prompt.Factories { if (bewoobjects?.Where(x => x is TDataContract) is IEnumerable dcs && dcs.Count() > 0) { - return (IEnumerable)dcs; + return dcs.Select(x => (TDataContract)x); } return default; diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj index 0c4f3b825..444fa6d32 100644 --- a/BeWo/BeWo.csproj +++ b/BeWo/BeWo.csproj @@ -9,7 +9,7 @@ Properties BeWo BeWoPlaner - v4.5.2 + v4.7.2 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 diff --git a/BeWo/Properties/Resources.Designer.cs b/BeWo/Properties/Resources.Designer.cs index aba958399..2ec6874a3 100644 --- a/BeWo/Properties/Resources.Designer.cs +++ b/BeWo/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace BeWo.Properties { // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { diff --git a/BeWo/Properties/Settings.Designer.cs b/BeWo/Properties/Settings.Designer.cs index d25df264c..9cac76965 100644 --- a/BeWo/Properties/Settings.Designer.cs +++ b/BeWo/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace BeWo.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/BeWo/ServiceProxy/ServiceFacade.cs b/BeWo/ServiceProxy/ServiceFacade.cs index 2c908ab63..111e2f9ff 100644 --- a/BeWo/ServiceProxy/ServiceFacade.cs +++ b/BeWo/ServiceProxy/ServiceFacade.cs @@ -67,7 +67,6 @@ namespace BeWo.ServiceProxy { typeof(IReportService), new EndpointAddress(_ServerName + "ReportService.svc") }, { typeof(IAiEnhancedService), new EndpointAddress(_ServerName + "AiEnhancedService.svc") } }; - } static ServiceFacade() diff --git a/BeWo/Services/BeWoControlFactory.cs b/BeWo/Services/BeWoControlFactory.cs index 53d1b4303..8bfd9fbb8 100644 --- a/BeWo/Services/BeWoControlFactory.cs +++ b/BeWo/Services/BeWoControlFactory.cs @@ -31,30 +31,6 @@ namespace BeWo.Services case AiContextType.PersonNavigation: return "ModuleAiControlPersonStyle"; case AiContextType.EmployeeNavigation: return "ModuleAiControlEmployeeStyle"; case AiContextType.OrganisationNavigation: return "ModuleAiControlOrganisationStyle"; - case AiContextType.Team: - break; - case AiContextType.Dokumente: - break; - case AiContextType.User: - break; - case AiContextType.UserGroup: - break; - case AiContextType.Report: - break; - case AiContextType.Scheduler: - break; - case AiContextType.Wohnheim: - break; - case AiContextType.Vertretungen: - break; - case AiContextType.CustomerTeam: - break; - case AiContextType.Scheduling: - break; - case AiContextType.Finance: - break; - case AiContextType.Administration: - break; case AiContextType.ServiceRecord: return "ModuleAiControlZeiterfassungStyle"; case AiContextType.CustomerDetail: return "ModuleAiControlCustomerStyle"; case AiContextType.PersonDetail: return "ModuleAiControlPersonStyle"; diff --git a/BeWo/app.config b/BeWo/app.config index 694c950ad..6f653d2b1 100644 --- a/BeWo/app.config +++ b/BeWo/app.config @@ -1,8 +1,8 @@ - + -
+
- + - + - + - + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - - + + diff --git a/BeWo/packages.config b/BeWo/packages.config index 6f25ffe13..00e26961e 100644 --- a/BeWo/packages.config +++ b/BeWo/packages.config @@ -1,11 +1,11 @@  - + - - - + + + \ No newline at end of file diff --git a/Controls/Controls.csproj b/Controls/Controls.csproj index 615be4556..d755a340c 100644 --- a/Controls/Controls.csproj +++ b/Controls/Controls.csproj @@ -10,7 +10,7 @@ Properties BeWo.Controls BeWo.Controls - v4.5.2 + v4.7.2 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 diff --git a/Controls/Properties/Resources.Designer.cs b/Controls/Properties/Resources.Designer.cs index 174153de3..a4bdfaefc 100644 --- a/Controls/Properties/Resources.Designer.cs +++ b/Controls/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace BeWo.Controls.Properties { // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { diff --git a/Controls/Properties/Settings.Designer.cs b/Controls/Properties/Settings.Designer.cs index 34d880215..f3e73f94b 100644 --- a/Controls/Properties/Settings.Designer.cs +++ b/Controls/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace BeWo.Controls.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Service/Plugins/AiService2.cs b/Service/Plugins/AiService2.cs index 01a9d8e40..c5aac9cbb 100644 --- a/Service/Plugins/AiService2.cs +++ b/Service/Plugins/AiService2.cs @@ -271,7 +271,7 @@ namespace BeWo.Service.Plugins var current_user = UserRightHelper.GetLoggedInUserWithOid(); var factory = new AiPromptFactory(); - loadContext(uicontext, context_reference, out var context_loaded); + var context_loaded = loadContext(uicontext, context_reference); var system_prompt = factory.CreateSystemInstructions(uicontext, context_loaded, context_Type); var conv = new AiConversation(); @@ -400,15 +400,15 @@ namespace BeWo.Service.Plugins case AiContextType.ServiceRecord: break; case AiContextType.CustomerDetail: - break; + return new List() { new CustomerServiceImp().LoadCustomer(context_reference[TableID.Customer][0]) }; case AiContextType.PersonDetail: - break; + return new List() { new CustomerServiceImp().LoadPerson(context_reference[TableID.Person][0]) }; case AiContextType.EmployeeDetail: - break; + return new List() { new EmployeeServiceImp().LoadEmployee(context_reference[TableID.Employee][0]) }; case AiContextType.OrganisationDetail: - break; + return new List() { new CustomerServiceImp().LoadOrganisation(context_reference[TableID.Organisation][0]) }; case AiContextType.SupportConceptDetail: - break; + return new List() { new CustomerServiceImp().LoadSupportConcept(context_reference[TableID.SupportConcept][0]) }; default: break; } diff --git a/Service/ServiceImplementations/EmployeeServiceImp.cs b/Service/ServiceImplementations/EmployeeServiceImp.cs index ed5d52546..cbe81b0b7 100644 --- a/Service/ServiceImplementations/EmployeeServiceImp.cs +++ b/Service/ServiceImplementations/EmployeeServiceImp.cs @@ -24,527 +24,527 @@ using BeWo.ServiceUtils.History; namespace BeWo.Service.ServiceImplementations { - [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)] - public class EmployeeServiceImp : IEmployeeService - { - public void ArchiveEmployee(long pOid, long pVersion) - { - try - { - var e = DAOFactory.GenericDAO.LoadByID(pOid); - e.Person.IsActive = ActivationTypeId.Archived; + [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)] + public class EmployeeServiceImp : IEmployeeService + { + public void ArchiveEmployee(long pOid, long pVersion) + { + try + { + var e = DAOFactory.GenericDAO.LoadByID(pOid); + e.Person.IsActive = ActivationTypeId.Archived; HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Archived); - ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Archived); + ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Archived); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public void DeactivateAssessmentSheetCategories(List dcs) - { - try - { - ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetCategoryOid.Value, i => i.AssessmentSheetCategoryVersion.Value), ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public void DeactivateAssessmentSheetEntries(List dcs) - { - try - { - //ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetEntryOid.Value, i => i.AssessmentSheetEntryVersion.Value), ActivationTypeId.Deleted); - var entries = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetEntryOid.Value)).Where(e => e.SystemEntryID == null); - - //entries.DoForEach(or => MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); - DAOFactory.GenericDAO.Delete(entries); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public void DeactivateAssessmentSheetValues(List dcs) - { - try - { - ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetValueOid.Value, i => i.AssessmentSheetValueVersion.Value), ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public void DeactivateEmployee(long pOid, long pVersion) - { - try - { - var e = DAOFactory.GenericDAO.LoadByID(pOid); - e.Person.IsActive = ActivationTypeId.Deleted; - ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); - - HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Delete); - - DeleteEmployeeCustomerRelationForEmployee(pOid); } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeleteEmployeeCustomerRelationForEmployee(long employeeOid) - { - var emp = DAOFactory.GenericDAO.LoadByID(employeeOid); - foreach (var e2c in emp.Employee2CustomerList) - { - DAOFactory.GenericDAO.Delete(e2c); - } - } + public void DeactivateAssessmentSheetCategories(List dcs) + { + try + { + ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetCategoryOid.Value, i => i.AssessmentSheetCategoryVersion.Value), ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeactivateEmployees(Dictionary pOid2Version) - { - try - { - ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); + public void DeactivateAssessmentSheetEntries(List dcs) + { + try + { + //ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetEntryOid.Value, i => i.AssessmentSheetEntryVersion.Value), ActivationTypeId.Deleted); + var entries = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetEntryOid.Value)).Where(e => e.SystemEntryID == null); - foreach (var key in pOid2Version.Keys) - { - DeleteEmployeeCustomerRelationForEmployee(key); - } - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + //entries.DoForEach(or => MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); + DAOFactory.GenericDAO.Delete(entries); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeactivateNewsItems(List dcs) - { - try - { - ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.NewsItemOid.Value, i => i.NewsItemVersion.Value), ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void DeactivateAssessmentSheetValues(List dcs) + { + try + { + ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.AssessmentSheetValueOid.Value, i => i.AssessmentSheetValueVersion.Value), ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeactivateTeam(long pOid, long pVersion) - { - try - { - ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void DeactivateEmployee(long pOid, long pVersion) + { + try + { + var e = DAOFactory.GenericDAO.LoadByID(pOid); + e.Person.IsActive = ActivationTypeId.Deleted; + ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); - public void DeactivateTeams(Dictionary pOid2Version) - { - try - { - ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Delete); - public void DeleteEmployee(long pOid, long pVersion) - { - try - { - this.DeleteEmployees(new Dictionary { { pOid, pVersion } }); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + DeleteEmployeeCustomerRelationForEmployee(pOid); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeleteEmployeeCustomerRelation(long pOid, long pVersion) - { - try - { - this.DeleteEmployeeCustomerRelations(new Dictionary { { pOid, pVersion } }); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void DeleteEmployeeCustomerRelationForEmployee(long employeeOid) + { + var emp = DAOFactory.GenericDAO.LoadByID(employeeOid); + foreach (var e2c in emp.Employee2CustomerList) + { + DAOFactory.GenericDAO.Delete(e2c); + } + } - public void DeleteEmployeeCustomerRelations(Dictionary pOid2Version) - { - try - { - var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pOid2Version.Select(e => e.Key)); - lOriginals.DoForEach(or => MapperFactory.EmployeeCustomerRelDC_Employee2CustomerMapper.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); + public void DeactivateEmployees(Dictionary pOid2Version) + { + try + { + ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); - DAOFactory.GenericDAO.Delete(lOriginals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + foreach (var key in pOid2Version.Keys) + { + DeleteEmployeeCustomerRelationForEmployee(key); + } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeleteEmployees(Dictionary pOid2Version) - { - try - { - pOid2Version.Keys.DoForEach(SettingsLogic.RemoveFromAllHistories); - var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pOid2Version.Select(e => e.Key)); - lOriginals.DoForEach(or => MapperFactory.EmployeeDC_Employee.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); + public void DeactivateNewsItems(List dcs) + { + try + { + ServiceLogic.SetActivationType(dcs.ToDictionary(i => i.NewsItemOid.Value, i => i.NewsItemVersion.Value), ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeactivateTeam(long pOid, long pVersion) + { + try + { + ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeactivateTeams(Dictionary pOid2Version) + { + try + { + ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeleteEmployee(long pOid, long pVersion) + { + try + { + this.DeleteEmployees(new Dictionary { { pOid, pVersion } }); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeleteEmployeeCustomerRelation(long pOid, long pVersion) + { + try + { + this.DeleteEmployeeCustomerRelations(new Dictionary { { pOid, pVersion } }); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeleteEmployeeCustomerRelations(Dictionary pOid2Version) + { + try + { + var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pOid2Version.Select(e => e.Key)); + lOriginals.DoForEach(or => MapperFactory.EmployeeCustomerRelDC_Employee2CustomerMapper.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); + + DAOFactory.GenericDAO.Delete(lOriginals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void DeleteEmployees(Dictionary pOid2Version) + { + try + { + pOid2Version.Keys.DoForEach(SettingsLogic.RemoveFromAllHistories); + var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pOid2Version.Select(e => e.Key)); + lOriginals.DoForEach(or => MapperFactory.EmployeeDC_Employee.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); foreach (Employee e in lOriginals) { - HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Delete); + HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Delete); } - DAOFactory.GenericDAO.Delete(lOriginals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + DAOFactory.GenericDAO.Delete(lOriginals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List FindEmployee(string pFirstName, string pLastName, string pPersonnelNumber) - { - try - { - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(DAOFactory.SearchDAO.FindEmployee(pFirstName, pLastName, pPersonnelNumber)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List FindEmployee(string pFirstName, string pLastName, string pPersonnelNumber) + { + try + { + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(DAOFactory.SearchDAO.FindEmployee(pFirstName, pLastName, pPersonnelNumber)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List FindTeams(string pTeamName, string pLeaderFirstName, string pLeaderLastName) - { - try - { - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.SearchDAO.FindTeams(pTeamName, pLeaderFirstName, pLeaderLastName)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List FindTeams(string pTeamName, string pLeaderFirstName, string pLeaderLastName) + { + try + { + return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.SearchDAO.FindTeams(pTeamName, pLeaderFirstName, pLeaderLastName)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllActiveAndArchivedEmployeesCompact() - { - try - { - var s = PluginLoader.FindClass(); + public List GetAllActiveAndArchivedEmployeesCompact() + { + try + { + var s = PluginLoader.FindClass(); - return s.GetAllActiveAndArchivedEmployeesCompact(); - - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return s.GetAllActiveAndArchivedEmployeesCompact(); - public List GetAllActiveEmployeesCompact() - { - try - { - var s = PluginLoader.FindClass(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return s.GetAllActiveEmployeesCompact(); + public List GetAllActiveEmployeesCompact() + { + try + { + var s = PluginLoader.FindClass(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - - } + return s.GetAllActiveEmployeesCompact(); - public List GetAllAuthorizedCompactEmployees() - { - try - { + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } - try - { - var s = PluginLoader.FindClass(); + } - return s.GetAllAuthorizedCompactEmployees(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllAuthorizedCompactEmployees() + { + try + { - public List GetAllTeamMember(CompactEmployeeDC employee) - { - try - { - Dictionary inTeamDict = new Dictionary(); - List teamMember = new List(); - var teams = DAOFactory.GenericDAO.GetAllActive(); - foreach (var team in teams) - { - bool contained = (team.Leader != null && team.Leader.Oid == employee.EmployeeOid); + try + { + var s = PluginLoader.FindClass(); - if (!contained) - { - foreach (var e in team.MemberList) - { - if (e.Oid.Value.Equals(employee.EmployeeOid)) - contained = true; - } - } - if (contained) - { - foreach (var e in team.MemberList) - { - if (!inTeamDict.ContainsKey(e.Oid.Value)) - { - teamMember.Add(e); - inTeamDict.Add(e.Oid.Value, true); - } - } - } - } - + return s.GetAllAuthorizedCompactEmployees(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - var dcList = MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(teamMember); - if (!inTeamDict.ContainsKey(employee.EmployeeOid)) - dcList.Add(employee); - return dcList; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllTeamMember(CompactEmployeeDC employee) + { + try + { + Dictionary inTeamDict = new Dictionary(); + List teamMember = new List(); + var teams = DAOFactory.GenericDAO.GetAllActive(); + foreach (var team in teams) + { + bool contained = (team.Leader != null && team.Leader.Oid == employee.EmployeeOid); - public List GetAllEmploymentTypes() - { - try - { - return MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public EmploymentTypeDC GetEmploymentType(long oid) - { - try - { - return MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewDC(DAOFactory.GenericDAO.GetByID(oid)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + if (!contained) + { + foreach (var e in team.MemberList) + { + if (e.Oid.Value.Equals(employee.EmployeeOid)) + contained = true; + } + } + if (contained) + { + foreach (var e in team.MemberList) + { + if (!inTeamDict.ContainsKey(e.Oid.Value)) + { + teamMember.Add(e); + inTeamDict.Add(e.Oid.Value, true); + } + } + } + } - public List InsertNewEmploymentTypes(List pEntries) - { - try - { - var lEntities = MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewEntities(pEntries); - DAOFactory.GenericDAO.Insert(lEntities); - return lEntities.Select(e => e.Oid.Value).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public void UpdateEmploymentTypes(List pEntries) - { - try - { - var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pEntries.Select(en => en.EmploymentTypeOid.Value)); - MapperFactory.EmploymentTypeDC_EmploymentType.MergeWithEntitys(pEntries, lOriginals); - DAOFactory.GenericDAO.Update(lOriginals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + var dcList = MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(teamMember); + if (!inTeamDict.ContainsKey(employee.EmployeeOid)) + dcList.Add(employee); + return dcList; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void DeactivateEmploymentTypes(Dictionary pOid2Version) - { - try - { - ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllEmploymentTypes() + { + try + { + return MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + public EmploymentTypeDC GetEmploymentType(long oid) + { + try + { + return MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewDC(DAOFactory.GenericDAO.GetByID(oid)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllAssessmentSheetCategories() - { - try - { - return MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive().Where(cat => !cat.ScopeType.HasValue || cat.ScopeType.Value == ScopeTypeId.Global)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List InsertNewEmploymentTypes(List pEntries) + { + try + { + var lEntities = MapperFactory.EmploymentTypeDC_EmploymentType.MapToNewEntities(pEntries); + DAOFactory.GenericDAO.Insert(lEntities); + return lEntities.Select(e => e.Oid.Value).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllAssessmentSheetEntries() - { - try - { - return MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void UpdateEmploymentTypes(List pEntries) + { + try + { + var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pEntries.Select(en => en.EmploymentTypeOid.Value)); + MapperFactory.EmploymentTypeDC_EmploymentType.MergeWithEntitys(pEntries, lOriginals); + DAOFactory.GenericDAO.Update(lOriginals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllAssessmentSheetValues() - { - try - { - return MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void DeactivateEmploymentTypes(Dictionary pOid2Version) + { + try + { + ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllEmployees() - { - try - { - return DAOFactory.GenericDAO.GetAll().Select(emp => MapperFactory.EmployeeDC_Employee.MapToNewDC(emp)).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllAssessmentSheetCategories() + { + try + { + return MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive().Where(cat => !cat.ScopeType.HasValue || cat.ScopeType.Value == ScopeTypeId.Global)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllNewsItems() - { - try - { - return MapperFactory.NewsItemDC_NewsItem.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllAssessmentSheetEntries() + { + try + { + return MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllTeamsCompact() - { - try - { - var s = PluginLoader.FindClass(); + public List GetAllAssessmentSheetValues() + { + try + { + return MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return s.GetAllTeamsCompact(); + public List GetAllEmployees() + { + try + { + return DAOFactory.GenericDAO.GetAll().Select(emp => MapperFactory.EmployeeDC_Employee.MapToNewDC(emp)).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public List GetAssessmentSheetEntriesForCustomer(long customerOid, DateTime startDt, DateTime endDt) - { - + public List GetAllNewsItems() + { + try + { + return MapperFactory.NewsItemDC_NewsItem.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - try - { - return MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewDCs(DAOFactory.SearchDAO.GetAssessmentSheetEntriesForCustomer(customerOid, startDt, endDt)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllTeamsCompact() + { + try + { + var s = PluginLoader.FindClass(); - public EmployeeDC GetEmployeeWithPersonOid(long pPersonOid) - { - try - { - return MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.SearchDAO.FindEmployeeWithPersonOid(pPersonOid)); - } - catch (Exception e) - { - throw new FaultException(new BeWoFault(String.Format("Mitarbeiter mit Id {0} wurde nicht gefunden!", pPersonOid))); - } - } - - public List GetLastOpenedEmployees() - { - try - { - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(SettingsLogic.GetLastOpened()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return s.GetAllTeamsCompact(); - public List GetLastOpenedTeams() - { - try - { - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(SettingsLogic.GetLastOpened()); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetPublishedNewsItems() - { - try - { - return this.GetAllNewsItems().Where(i => i.PublishDate.HasValue && i.PublishDate.Value.Date <= DateTime.Now).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAssessmentSheetEntriesForCustomer(long customerOid, DateTime startDt, DateTime endDt) + { + + + try + { + return MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewDCs(DAOFactory.SearchDAO.GetAssessmentSheetEntriesForCustomer(customerOid, startDt, endDt)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public EmployeeDC GetEmployeeWithPersonOid(long pPersonOid) + { + try + { + return MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.SearchDAO.FindEmployeeWithPersonOid(pPersonOid)); + } + catch (Exception e) + { + throw new FaultException(new BeWoFault(String.Format("Mitarbeiter mit Id {0} wurde nicht gefunden!", pPersonOid))); + } + } + + public List GetLastOpenedEmployees() + { + try + { + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(SettingsLogic.GetLastOpened()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public List GetLastOpenedTeams() + { + try + { + return MapperFactory.CompactTeamDC_Team.MapToNewDCs(SettingsLogic.GetLastOpened()); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public List GetPublishedNewsItems() + { + try + { + return this.GetAllNewsItems().Where(i => i.PublishDate.HasValue && i.PublishDate.Value.Date <= DateTime.Now).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } public List GetPublishedNewsItemsForEmployee(long employeeOid, bool fetchTeamNews) { @@ -578,7 +578,7 @@ namespace BeWo.Service.ServiceImplementations return i.PublishDate.HasValue && i.PublishDate.Value.Date <= DateTime.Now; } return teamOids.Contains(i.TeamOid.Value); - + }).ToList(); var dcList = MapperFactory.NewsItemDC_NewsItem.MapToNewDCs(items); @@ -601,7 +601,7 @@ namespace BeWo.Service.ServiceImplementations } } dcList.AddRange(newDcList); - + return dcList.OrderByDescending(i => i.PublishDate).ToList(); } @@ -629,7 +629,7 @@ namespace BeWo.Service.ServiceImplementations public long InsertNewNewsItem(NewsItemDC dc) { - return InsertNewNewsItems(new List{dc}).FirstOrDefault(); + return InsertNewNewsItems(new List { dc }).FirstOrDefault(); } @@ -648,544 +648,545 @@ namespace BeWo.Service.ServiceImplementations } } - public void InsertEmployeeCustomerRelation(CustomerEmployeeRelationDC pRelationDC) - { - try - { - DAOFactory.GenericDAO.Insert(MapperFactory.EmployeeCustomerRelDC_Employee2CustomerMapper.MapToNewEntity(pRelationDC)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void InsertEmployeeCustomerRelation(CustomerEmployeeRelationDC pRelationDC) + { + try + { + DAOFactory.GenericDAO.Insert(MapperFactory.EmployeeCustomerRelDC_Employee2CustomerMapper.MapToNewEntity(pRelationDC)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List InsertNewAssessmentSheetCategories(List dcs) - { - try - { - var newAssessmentSheetCategories = MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MapToNewEntities(dcs); - DAOFactory.GenericDAO.Insert(newAssessmentSheetCategories); - return newAssessmentSheetCategories.Select(i => i.Oid.Value).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List InsertNewAssessmentSheetCategories(List dcs) + { + try + { + var newAssessmentSheetCategories = MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MapToNewEntities(dcs); + DAOFactory.GenericDAO.Insert(newAssessmentSheetCategories); + return newAssessmentSheetCategories.Select(i => i.Oid.Value).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List InsertNewAssessmentSheetEntries(List dcs) - { - try - { - var newAssessmentSheetEntries = MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewEntities(dcs); - DAOFactory.GenericDAO.Insert(newAssessmentSheetEntries); - return newAssessmentSheetEntries.Select(i => i.Oid.Value).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List InsertNewAssessmentSheetEntries(List dcs) + { + try + { + var newAssessmentSheetEntries = MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MapToNewEntities(dcs); + DAOFactory.GenericDAO.Insert(newAssessmentSheetEntries); + return newAssessmentSheetEntries.Select(i => i.Oid.Value).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List InsertNewAssessmentSheetValues(List dcs) - { - try - { - var newAssessmentSheetValues = MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MapToNewEntities(dcs); - DAOFactory.GenericDAO.Insert(newAssessmentSheetValues); - return newAssessmentSheetValues.Select(i => i.Oid.Value).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List InsertNewAssessmentSheetValues(List dcs) + { + try + { + var newAssessmentSheetValues = MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MapToNewEntities(dcs); + DAOFactory.GenericDAO.Insert(newAssessmentSheetValues); + return newAssessmentSheetValues.Select(i => i.Oid.Value).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long InsertNewEmployee(EmployeeDC pEmployeeDC) - { - try - { + public long InsertNewEmployee(EmployeeDC pEmployeeDC) + { + try + { var li = SecurityUtils.GetLicenseInfo(); if (li.EmployeeCount >= li.MaxEmployeeCount) { return -1; } - var es = PluginLoader.FindClass(); + var es = PluginLoader.FindClass(); var id = es.InsertNewEmployee(pEmployeeDC); var temp = DAOFactory.GenericDAO.LoadByID(id); - HistoryCreator.MakeNewEmployeeHistoryEntry(temp, pEmployeeDC, StatementType.Insert); + HistoryCreator.MakeNewEmployeeHistoryEntry(temp, pEmployeeDC, StatementType.Insert); - OwnChatHelper.StartOwnChatSync(); + OwnChatHelper.StartOwnChatSync(); - return id; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return id; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List InsertNewNewsItems(List dcs) - { - try - { - var newNewsItems = MapperFactory.NewsItemDC_NewsItem.MapToNewEntities(dcs); - DAOFactory.GenericDAO.Insert(newNewsItems); - return newNewsItems.Select(i => i.Oid.Value).ToList(); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List InsertNewNewsItems(List dcs) + { + try + { + var newNewsItems = MapperFactory.NewsItemDC_NewsItem.MapToNewEntities(dcs); + DAOFactory.GenericDAO.Insert(newNewsItems); + return newNewsItems.Select(i => i.Oid.Value).ToList(); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long InsertNewTeam(TeamDC pTeam) - { - try - { - Team lTeam = MapperFactory.TeamDC_Team.MapToNewEntity(pTeam); - DAOFactory.GenericDAO.Insert(lTeam); + public long InsertNewTeam(TeamDC pTeam) + { + try + { + Team lTeam = MapperFactory.TeamDC_Team.MapToNewEntity(pTeam); + DAOFactory.GenericDAO.Insert(lTeam); - OwnChatHelper.StartOwnChatSync(); + OwnChatHelper.StartOwnChatSync(); - return lTeam.Oid.Value; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return lTeam.Oid.Value; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public TeamDC LoadTeam(long pTeamOid) - { - try - { - SettingsLogic.AddToUsersHistory(pTeamOid); - return MapperFactory.TeamDC_Team.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pTeamOid)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public TeamDC LoadTeam(long pTeamOid) + { + try + { + SettingsLogic.AddToUsersHistory(pTeamOid); + return MapperFactory.TeamDC_Team.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pTeamOid)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public CompactTeamDC LoadCompactTeam(long pTeamOid) - { - try - { - SettingsLogic.AddToUsersHistory(pTeamOid); - return MapperFactory.CompactTeamDC_Team.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pTeamOid)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public CompactTeamDC LoadCompactTeam(long pTeamOid) + { + try + { + SettingsLogic.AddToUsersHistory(pTeamOid); + return MapperFactory.CompactTeamDC_Team.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pTeamOid)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public EmployeeDC LoadLoggedOnEmployee(long pEmployeeOid) - { - try - { - return MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pEmployeeOid)); - } - catch (Exception e) - { - throw new FaultException(new BeWoFault(e), e.Message); - } - } + public EmployeeDC LoadLoggedOnEmployee(long pEmployeeOid) + { + try + { + return MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pEmployeeOid)); + } + catch (Exception e) + { + throw new FaultException(new BeWoFault(e), e.Message); + } + } - public EmployeeDC LoadEmployee(long pEmployeeOid) - { - try - { - var es = PluginLoader.FindClass(); - return es.LoadEmployee(pEmployeeOid); - } - catch (Exception e) - { - throw new FaultException(new BeWoFault(e), e.Message); - } - } + public EmployeeDC LoadEmployee(long pEmployeeOid) + { + try + { + var es = PluginLoader.FindClass(); - public CompactEmployeeDC LoadCompactEmployee(long pEmployeeOid) - { - try - { - SettingsLogic.AddToUsersHistory(pEmployeeOid); - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pEmployeeOid)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return es.LoadEmployee(pEmployeeOid); + } + catch (Exception e) + { + throw new FaultException(new BeWoFault(e), e.Message); + } + } - public void UpdateAssessmentSheetCategories(List dcs) - { - try - { - var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetCategoryOid.Value)); - MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MergeWithEntitys(dcs, originals); - DAOFactory.GenericDAO.Update(originals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public CompactEmployeeDC LoadCompactEmployee(long pEmployeeOid) + { + try + { + SettingsLogic.AddToUsersHistory(pEmployeeOid); + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pEmployeeOid)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void UpdateAssessmentSheetEntries(List dcs) - { - try - { - var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetEntryOid.Value)); + public void UpdateAssessmentSheetCategories(List dcs) + { + try + { + var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetCategoryOid.Value)); + MapperFactory.AssessmentSheetCategoryDC_AssessmentSheetCategory.MergeWithEntitys(dcs, originals); + DAOFactory.GenericDAO.Update(originals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - var aSCategories = DAOFactory.GenericDAO.GetAll().Where(c => c.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet)); + public void UpdateAssessmentSheetEntries(List dcs) + { + try + { + var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetEntryOid.Value)); + + var aSCategories = DAOFactory.GenericDAO.GetAll().Where(c => c.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet)); List removeList = new List(); - foreach (var ase in originals) - { + foreach (var ase in originals) + { if (ase.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet) && aSCategories.Count(c => c.Description.Equals(ase.AssessmentSheetCategory.Description)) > 0) - { - removeList.Add(ase); - } - } - foreach (var ase in removeList) - { - originals.Remove(ase); - } - if (originals.Count > 0) - { - MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MergeWithEntitys(dcs, originals); + { + removeList.Add(ase); + } + } + foreach (var ase in removeList) + { + originals.Remove(ase); + } + if (originals.Count > 0) + { + MapperFactory.AssessmentSheetEntryDC_AssessmentSheetEntry.MergeWithEntitys(dcs, originals); if (originals.Count > 0) DAOFactory.GenericDAO.Update(originals); - } - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public void UpdateAssessmentSheetValues(List dcs) - { - try - { - var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetValueOid.Value)); - MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MergeWithEntitys(dcs, originals); - DAOFactory.GenericDAO.Update(originals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void UpdateAssessmentSheetValues(List dcs) + { + try + { + var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.AssessmentSheetValueOid.Value)); + MapperFactory.AssessmentSheetValueDC_AssessmentSheetValue.MergeWithEntitys(dcs, originals); + DAOFactory.GenericDAO.Update(originals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long UpdateEmployee(EmployeeDC pEmployeeDC) - { - try - { - var lOriginal = DAOFactory.GenericDAO.LoadByID(pEmployeeDC.EmployeeOid.Value); + public long UpdateEmployee(EmployeeDC pEmployeeDC) + { + try + { + var lOriginal = DAOFactory.GenericDAO.LoadByID(pEmployeeDC.EmployeeOid.Value); - HistoryCreator.MakeNewEmployeeHistoryEntry(lOriginal, pEmployeeDC, StatementType.Update); - MapperFactory.EmployeeDC_Employee.MergeWithEntity(pEmployeeDC, lOriginal); + HistoryCreator.MakeNewEmployeeHistoryEntry(lOriginal, pEmployeeDC, StatementType.Update); + MapperFactory.EmployeeDC_Employee.MergeWithEntity(pEmployeeDC, lOriginal); - - DAOFactory.GenericDAO.Update(lOriginal); - OwnChatHelper.StartOwnChatSync(); - return lOriginal.Oid.Value; - } - catch (StaleObjectStateException) - { - throw new FaultException(new BeWoFault("Wurde in der Zwischenzeit geändert", BeWoFaultType.Concurrency)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + DAOFactory.GenericDAO.Update(lOriginal); - public void UpdateNewsItems(List dcs) - { - try - { - var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.NewsItemOid.Value)); - MapperFactory.NewsItemDC_NewsItem.MergeWithEntitys(dcs, originals); - DAOFactory.GenericDAO.Update(originals); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + OwnChatHelper.StartOwnChatSync(); + return lOriginal.Oid.Value; + } + catch (StaleObjectStateException) + { + throw new FaultException(new BeWoFault("Wurde in der Zwischenzeit geändert", BeWoFaultType.Concurrency)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long UpdateTeam(TeamDC pTeam) - { - try - { - Team lOriginal = DAOFactory.GenericDAO.LoadByID(pTeam.TeamOid.Value); - MapperFactory.TeamDC_Team.MergeWithEntity(pTeam, lOriginal); - DAOFactory.GenericDAO.Update(lOriginal); + public void UpdateNewsItems(List dcs) + { + try + { + var originals = DAOFactory.GenericDAO.LoadByIDs(dcs.Select(i => i.NewsItemOid.Value)); + MapperFactory.NewsItemDC_NewsItem.MergeWithEntitys(dcs, originals); + DAOFactory.GenericDAO.Update(originals); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - OwnChatHelper.StartOwnChatSync(); + public long UpdateTeam(TeamDC pTeam) + { + try + { + Team lOriginal = DAOFactory.GenericDAO.LoadByID(pTeam.TeamOid.Value); + MapperFactory.TeamDC_Team.MergeWithEntity(pTeam, lOriginal); + DAOFactory.GenericDAO.Update(lOriginal); - return lOriginal.Oid.Value; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + OwnChatHelper.StartOwnChatSync(); - public List GetAllEmployeeAbsenceTimes() - { - try - { - return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(DAOFactory.SearchDAO.FindAbsenceTimes(true, false)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public List GetAllEmployeeAbsenceTimesForMonth(int year, int month) - { - try - { - var startdate = new DateTime(year, month, 1); - var enddate = startdate.AddMonths(1).AddTicks(-1); + return lOriginal.Oid.Value; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - var absencetimes = DAOFactory.SearchDAO.FindAbsenceTimes(startdate, enddate); + public List GetAllEmployeeAbsenceTimes() + { + try + { + return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(DAOFactory.SearchDAO.FindAbsenceTimes(true, false)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + public List GetAllEmployeeAbsenceTimesForMonth(int year, int month) + { + try + { + var startdate = new DateTime(year, month, 1); + var enddate = startdate.AddMonths(1).AddTicks(-1); - return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absencetimes); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public List GetMultipleEmployeeAbsenceTimesForMonth(int year, int month, List empOids) - { - try - { - var startdate = new DateTime(year, month, 1); - var enddate = startdate.AddMonths(1).AddTicks(-1); + var absencetimes = DAOFactory.SearchDAO.FindAbsenceTimes(startdate, enddate); - List absenceTimes = new List(); + return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absencetimes); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + public List GetMultipleEmployeeAbsenceTimesForMonth(int year, int month, List empOids) + { + try + { + var startdate = new DateTime(year, month, 1); + var enddate = startdate.AddMonths(1).AddTicks(-1); - foreach (var oid in empOids) - { - absenceTimes.AddRange(DAOFactory.SearchDAO.FindAbsenceTimesForEmployee(startdate, enddate, oid)); - } + List absenceTimes = new List(); - return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absenceTimes); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public List GetAllEmployeeAbsenceTimesForYear(int year) - { - try - { - var startdate = new DateTime(year, 1, 1); - var enddate = startdate.AddYears(1).AddTicks(-1); + foreach (var oid in empOids) + { + absenceTimes.AddRange(DAOFactory.SearchDAO.FindAbsenceTimesForEmployee(startdate, enddate, oid)); + } - var absencetimes = DAOFactory.SearchDAO.FindAbsenceTimes(startdate, enddate); + return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absenceTimes); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + public List GetAllEmployeeAbsenceTimesForYear(int year) + { + try + { + var startdate = new DateTime(year, 1, 1); + var enddate = startdate.AddYears(1).AddTicks(-1); - return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absencetimes); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + var absencetimes = DAOFactory.SearchDAO.FindAbsenceTimes(startdate, enddate); - public void DeactivateGroupOfPeople(long pOid, long pVersion) - { - try - { - ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absencetimes); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long InsertNewGroupOfPeople(GroupOfPeopleDC pGroupOfPeople) - { - try - { - GroupOfPeople obj = MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewEntity(pGroupOfPeople); - DAOFactory.GenericDAO.Insert(obj); - return obj.Oid.Value; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public void DeactivateGroupOfPeople(long pOid, long pVersion) + { + try + { + ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Deleted); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public GroupOfPeopleDC LoadGroupOfPeople(long pOid) - { - try - { - return MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pOid)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public long InsertNewGroupOfPeople(GroupOfPeopleDC pGroupOfPeople) + { + try + { + GroupOfPeople obj = MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewEntity(pGroupOfPeople); + DAOFactory.GenericDAO.Insert(obj); + return obj.Oid.Value; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public long UpdateGroupOfPeople(GroupOfPeopleDC pGroupOfPeople) - { - try - { - GroupOfPeople lOriginal = DAOFactory.GenericDAO.LoadByID(pGroupOfPeople.GroupOfPeopleOid.Value); - MapperFactory.GroupOfPeopleDC_GroupOfPeople.MergeWithEntity(pGroupOfPeople, lOriginal); - DAOFactory.GenericDAO.Update(lOriginal); - return lOriginal.Oid.Value; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public GroupOfPeopleDC LoadGroupOfPeople(long pOid) + { + try + { + return MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewDC(DAOFactory.GenericDAO.LoadByID(pOid)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllGroupsCompact(long? employeeOid) - { - try - { - var groups = GetAllGroupsContainingMemberOfEmployee(employeeOid); + public long UpdateGroupOfPeople(GroupOfPeopleDC pGroupOfPeople) + { + try + { + GroupOfPeople lOriginal = DAOFactory.GenericDAO.LoadByID(pGroupOfPeople.GroupOfPeopleOid.Value); + MapperFactory.GroupOfPeopleDC_GroupOfPeople.MergeWithEntity(pGroupOfPeople, lOriginal); + DAOFactory.GenericDAO.Update(lOriginal); + return lOriginal.Oid.Value; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return MapperFactory.CompactGroupOfPeopleDC_GroupOfPeople.MapToNewDCs(groups); + public List GetAllGroupsCompact(long? employeeOid) + { + try + { + var groups = GetAllGroupsContainingMemberOfEmployee(employeeOid); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return MapperFactory.CompactGroupOfPeopleDC_GroupOfPeople.MapToNewDCs(groups); - public List GetAllGroups(long? employeeOid) - { - try - { - var groups = GetAllGroupsContainingMemberOfEmployee(employeeOid); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewDCs(groups.OrderBy(g => g.Name)); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public List GetAllGroups(long? employeeOid) + { + try + { + var groups = GetAllGroupsContainingMemberOfEmployee(employeeOid); - private IEnumerable GetAllGroupsContainingMemberOfEmployee(long? employeeOid) - { - var allgroups = DAOFactory.GenericDAO.GetAllActive(); - if (!employeeOid.HasValue) - return allgroups; - var groups = new List(); - Dictionary processedGroups = new Dictionary(); - Employee emp = DAOFactory.GenericDAO.LoadByID(employeeOid.Value); + return MapperFactory.GroupOfPeopleDC_GroupOfPeople.MapToNewDCs(groups.OrderBy(g => g.Name)); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - - ApplicationUser loggedInUser = null; + private IEnumerable GetAllGroupsContainingMemberOfEmployee(long? employeeOid) + { + var allgroups = DAOFactory.GenericDAO.GetAllActive(); + if (!employeeOid.HasValue) + return allgroups; + var groups = new List(); + Dictionary processedGroups = new Dictionary(); + Employee emp = DAOFactory.GenericDAO.LoadByID(employeeOid.Value); - if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null) - { - loggedInUser = LoggedInUserOperationContextExt.Current.User; - } - else - { - loggedInUser = SessionFacade.LoggedInUser; - } - bool nurEigene = true; - if (loggedInUser != null) - { - - //Alle - if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConcept_ViewAllSupportConcepts)) - { - nurEigene = false; - } - //Vom Team - else if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConcept_ViewMyTeams)) - { - //? - } - //Eigene - else if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConceptView_View)) - { - nurEigene = true; - } - - } + ApplicationUser loggedInUser = null; - foreach (var groupOfPeople in allgroups) - { - if (!processedGroups.ContainsKey(groupOfPeople.Oid.Value)) - { - processedGroups.Add(groupOfPeople.Oid.Value, true); + if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null) + { + loggedInUser = LoggedInUserOperationContextExt.Current.User; + } + else + { + loggedInUser = SessionFacade.LoggedInUser; + } - if (nurEigene) - { - if (employeeOid.Value == groupOfPeople.CreatedByEmployeeOid || ContainsMemberOfEmployee(groupOfPeople, emp)) - groups.Add(groupOfPeople); - } - else - { - groups.Add(groupOfPeople); - } - } - } - return groups; - - } + bool nurEigene = true; + if (loggedInUser != null) + { - private bool ContainsMemberOfEmployee(GroupOfPeople groupOfPeople, Employee emp) - { - return groupOfPeople.CostBearer2SupportConceptList.Any(c2s => emp.Employee2CustomerList.Any(e2c => e2c.CustomerOid == c2s.SupportConcept.Customer.Oid)); - } + //Alle + if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConcept_ViewAllSupportConcepts)) + { + nurEigene = false; + } + //Vom Team + else if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConcept_ViewMyTeams)) + { + //? + } + //Eigene + else if (Utils.UserHasRight(loggedInUser, UserRightType.SupportConceptView_View)) + { + nurEigene = true; + } - public bool IsAssessmentSheetEntryBelongingToAS(long assessmentSheetCategoryOid) - { - var cat = DAOFactory.GenericDAO.GetByID(assessmentSheetCategoryOid); + } - return cat.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet); - } + foreach (var groupOfPeople in allgroups) + { + if (!processedGroups.ContainsKey(groupOfPeople.Oid.Value)) + { + processedGroups.Add(groupOfPeople.Oid.Value, true); - public bool IsAssessmentSheetCategoryBelongingToAS(long assessmentSheetCategoryOid) - { - try - { - var category = DAOFactory.GenericDAO.GetByID(assessmentSheetCategoryOid); + if (nurEigene) + { + if (employeeOid.Value == groupOfPeople.CreatedByEmployeeOid || ContainsMemberOfEmployee(groupOfPeople, emp)) + groups.Add(groupOfPeople); + } + else + { + groups.Add(groupOfPeople); + } + } + } + return groups; - return category.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + } + + private bool ContainsMemberOfEmployee(GroupOfPeople groupOfPeople, Employee emp) + { + return groupOfPeople.CostBearer2SupportConceptList.Any(c2s => emp.Employee2CustomerList.Any(e2c => e2c.CustomerOid == c2s.SupportConcept.Customer.Oid)); + } + + public bool IsAssessmentSheetEntryBelongingToAS(long assessmentSheetCategoryOid) + { + var cat = DAOFactory.GenericDAO.GetByID(assessmentSheetCategoryOid); + + return cat.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet); + } + + public bool IsAssessmentSheetCategoryBelongingToAS(long assessmentSheetCategoryOid) + { + try + { + var category = DAOFactory.GenericDAO.GetByID(assessmentSheetCategoryOid); + + return category.SystemEntryID.Equals(SystemEntryID.AdditionalServiceAssessmentSheet); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } public List GetAllOvertimesFromEmployee(long employeeOid) - { + { try { var allOvertimes = DAOFactory.GenericDAO.GetAll(); @@ -1197,7 +1198,7 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } public List GetAllOvertimes() { @@ -1213,7 +1214,7 @@ namespace BeWo.Service.ServiceImplementations } public void DeleteOvertimes(Dictionary pOid2Version) - { + { try { pOid2Version.Keys.DoForEach(SettingsLogic.RemoveFromAllHistories); @@ -1226,10 +1227,10 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } public List InsertOvertimes(List pOvertimes) - { + { try { var newOvertimes = MapperFactory.OvertimeDC_Overtime.MapToNewEntities(pOvertimes); @@ -1241,10 +1242,10 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } - public List UpdateOvertimes(List pOvertimes) - { + public List UpdateOvertimes(List pOvertimes) + { try { var pOids = (from motherfucker in pOvertimes where motherfucker.OvertimeOid.HasValue select motherfucker.OvertimeOid.Value).ToList(); @@ -1259,10 +1260,10 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } - public List GetAllAuszahlungsarten() - { + public List GetAllAuszahlungsarten() + { try { var alleAuszahlungsarten = DAOFactory.GenericDAO.GetAllActive(); @@ -1273,10 +1274,10 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } - public List InsertAuszahlungsarten(IEnumerable pAuszahlungsarten) - { + public List InsertAuszahlungsarten(IEnumerable pAuszahlungsarten) + { try { var neueAuszahlungsarten = MapperFactory.AuszahlungsartDC_Auszahlungsart.MapToNewEntities(pAuszahlungsarten); @@ -1288,7 +1289,7 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } public List UpdateAuszahlungsarten(List pAuszahlungsarten) { @@ -1316,9 +1317,9 @@ namespace BeWo.Service.ServiceImplementations var lOriginals = DAOFactory.GenericDAO.LoadByIDs(pOid2Version.Select(e => e.Key)); lOriginals.DoForEach(or => MapperFactory.AuszahlungsartDC_Auszahlungsart.ConcurrencyCheck(pOid2Version[or.Oid.Value], or)); - //ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Archived); + //ServiceLogic.SetActivationType(pOid2Version, ActivationTypeId.Archived); - DAOFactory.GenericDAO.Delete(lOriginals); + DAOFactory.GenericDAO.Delete(lOriginals); } catch (Exception e) { @@ -1326,8 +1327,8 @@ namespace BeWo.Service.ServiceImplementations } } - public List GetTeamOidsByEmployee(long pEmployeeOid) - { + public List GetTeamOidsByEmployee(long pEmployeeOid) + { try { var liste = DAOFactory.SearchDAO.FindTeamsOfEmployee(pEmployeeOid); @@ -1337,172 +1338,172 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } - public List GetAllChatActiveEmployeesCompact() - { - try - { - var employees = DAOFactory.SearchDAO.FindAllChatActiveEmployees(); + public List GetAllChatActiveEmployeesCompact() + { + try + { + var employees = DAOFactory.SearchDAO.FindAllChatActiveEmployees(); - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(employees); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(employees); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - public List GetAllEmployeeAppCodes(long pEmployeeOid) - { - try - { - var liste = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(pEmployeeOid); + public List GetAllEmployeeAppCodes(long pEmployeeOid) + { + try + { + var liste = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(pEmployeeOid); - return MapperFactory.EmployeeAPPCodeDC_EmployeeAPPCode.MapToNewDCs(liste); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public Byte[] GetEmployeeImage(long employeeOid) - { - try - { - var employee = DAOFactory.GenericDAO.GetByID(employeeOid); + return MapperFactory.EmployeeAPPCodeDC_EmployeeAPPCode.MapToNewDCs(liste); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return employee.Person.Images != null && employee.Person.Images.Count > 0 ? employee.Person.Images[0].Original : null; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public Byte[] GetEmployeeImage(long employeeOid) + { + try + { + var employee = DAOFactory.GenericDAO.GetByID(employeeOid); - public Byte[] GetEmployeeThumbnail(long employeeOid) - { - try - { - var employee = DAOFactory.GenericDAO.GetByID(employeeOid); + return employee.Person.Images != null && employee.Person.Images.Count > 0 ? employee.Person.Images[0].Original : null; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return employee.Person.Images != null && employee.Person.Images.Count > 0 ? employee.Person.Images[0].SmallThumbnail : null; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public Byte[] GetEmployeeThumbnail(long employeeOid) + { + try + { + var employee = DAOFactory.GenericDAO.GetByID(employeeOid); - public CompactEmployeeDC GetActiveCompactEmployeeWithOid(long employeeOid) - { - try - { - var employee = DAOFactory.GenericDAO.GetByID(employeeOid); + return employee.Person.Images != null && employee.Person.Images.Count > 0 ? employee.Person.Images[0].SmallThumbnail : null; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(employee); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public CompactEmployeeDC GetActiveCompactEmployeeWithOid(long employeeOid) + { + try + { + var employee = DAOFactory.GenericDAO.GetByID(employeeOid); - public void InsertNewArbeitsZeit(ArbeitszeitDC arbeitszeit, ArbeitszeitEintragDC arbeitszeitEintrag) - { - try - { - var x = MapperFactory.ArbeitszeitDC_Arbeitszeit.MapToNewEntity(arbeitszeit); + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(employee); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - DAOFactory.GenericDAO.Insert(x); + public void InsertNewArbeitsZeit(ArbeitszeitDC arbeitszeit, ArbeitszeitEintragDC arbeitszeitEintrag) + { + try + { + var x = MapperFactory.ArbeitszeitDC_Arbeitszeit.MapToNewEntity(arbeitszeit); - arbeitszeitEintrag.ArbeitszeitOid = x.Oid; + DAOFactory.GenericDAO.Insert(x); - var y = MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MapToNewEntity(arbeitszeitEintrag); - - DAOFactory.GenericDAO.Insert(y); + arbeitszeitEintrag.ArbeitszeitOid = x.Oid; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + var y = MapperFactory.ArbeitszeitEintragDC_ArbeitszeitEintrag.MapToNewEntity(arbeitszeitEintrag); - public ArbeitszeitDC UpdateArbeitszeit(ArbeitszeitDC pArbeitszeit) - { - try - { - var lOriginal = DAOFactory.GenericDAO.LoadByID(pArbeitszeit.ArbeitszeitOid.Value); + DAOFactory.GenericDAO.Insert(y); - MapperFactory.ArbeitszeitDC_Arbeitszeit.MergeWithEntity(pArbeitszeit, lOriginal); - DAOFactory.GenericDAO.Update(lOriginal); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return MapperFactory.ArbeitszeitDC_Arbeitszeit.MapToNewDC(lOriginal); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + public ArbeitszeitDC UpdateArbeitszeit(ArbeitszeitDC pArbeitszeit) + { + try + { + var lOriginal = DAOFactory.GenericDAO.LoadByID(pArbeitszeit.ArbeitszeitOid.Value); - public void DeleteArbeitszeitEintrag(long arbeistzeitEintragOid) - { - try - { - var lOriginal = DAOFactory.GenericDAO.LoadByID(arbeistzeitEintragOid); + MapperFactory.ArbeitszeitDC_Arbeitszeit.MergeWithEntity(pArbeitszeit, lOriginal); + DAOFactory.GenericDAO.Update(lOriginal); - DAOFactory.GenericDAO.Delete(lOriginal); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - public List GetAllActiveVertreterEmployeesCompact(long? customerOid, DateTime date) - { - var filter = new VertreterSucheFilterDC(); - filter.CustomerOid = customerOid; - filter.StartDate = date; - filter.EndDate = date; - filter.VerwendeEntfernungssuche = false; - return SucheVertreter(filter); - } - - public List SucheVertreter(VertreterSucheFilterDC filter) - { - try - { - var s = PluginLoader.FindClass(); + return MapperFactory.ArbeitszeitDC_Arbeitszeit.MapToNewDC(lOriginal); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - return s.SucheVertreter(filter); + public void DeleteArbeitszeitEintrag(long arbeistzeitEintragOid) + { + try + { + var lOriginal = DAOFactory.GenericDAO.LoadByID(arbeistzeitEintragOid); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + DAOFactory.GenericDAO.Delete(lOriginal); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + public List GetAllActiveVertreterEmployeesCompact(long? customerOid, DateTime date) + { + var filter = new VertreterSucheFilterDC(); + filter.CustomerOid = customerOid; + filter.StartDate = date; + filter.EndDate = date; + filter.VerwendeEntfernungssuche = false; + return SucheVertreter(filter); + } - + public List SucheVertreter(VertreterSucheFilterDC filter) + { + try + { + var s = PluginLoader.FindClass(); - public List LoadEmployeeTokenRelationsByOid(IEnumerable pOids) - { - try - { - var customerTokenRels = DAOFactory.GenericDAO.LoadByIDs(pOids); + return s.SucheVertreter(filter); - return MapperFactory.EmployeeTokenRelationDC_Employee2Token.MapToNewDCs(customerTokenRels); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + + + public List LoadEmployeeTokenRelationsByOid(IEnumerable pOids) + { + try + { + var customerTokenRels = DAOFactory.GenericDAO.LoadByIDs(pOids); + + return MapperFactory.EmployeeTokenRelationDC_Employee2Token.MapToNewDCs(customerTokenRels); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } public EmployeeDC GetEmployeeByID(long employeeOid) - { + { try { var employee = DAOFactory.GenericDAO.GetByID(employeeOid); @@ -1513,724 +1514,726 @@ namespace BeWo.Service.ServiceImplementations { throw Utils.CreateBeWoFaultException(e); } - } + } - public void CreateOrUpdateChatBewoMessageSync(long? eOid, string text) - { - try - { + public void CreateOrUpdateChatBewoMessageSync(long? eOid, string text) + { + try + { - var chatMessageSync = DAOFactory.SearchDAO.FindEmployeeChatBewoMessageSync(eOid.Value); + var chatMessageSync = DAOFactory.SearchDAO.FindEmployeeChatBewoMessageSync(eOid.Value); - int count = chatMessageSync.Count(); - if(count > 0) { + int count = chatMessageSync.Count(); + if (count > 0) + { - foreach (var item in chatMessageSync) - { - item.MessageSyncText = text; - } - - DAOFactory.GenericDAO.Update(chatMessageSync); - } - else { - ChatBewoMessageSyncDC cms = new ChatBewoMessageSyncDC(); + foreach (var item in chatMessageSync) + { + item.MessageSyncText = text; + } - cms.EmployeeOid = eOid; - cms.MessageSyncText = text; + DAOFactory.GenericDAO.Update(chatMessageSync); + } + else + { + ChatBewoMessageSyncDC cms = new ChatBewoMessageSyncDC(); - var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewEntity(cms); - DAOFactory.GenericDAO.Insert(x); - } - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + cms.EmployeeOid = eOid; + cms.MessageSyncText = text; - public ChatBewoMessageSyncDC GetChatBewoMessageSync(long? eOid) - { - try - { - var chatMessageSync = DAOFactory.GenericDAO.GetAllActive(); + var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewEntity(cms); + DAOFactory.GenericDAO.Insert(x); + } + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } - ChatBewoMessageSync cms = null; - foreach (var item in chatMessageSync) - { - if (eOid == item.EmployeeOid) - { - cms = item; - } - } + public ChatBewoMessageSyncDC GetChatBewoMessageSync(long? eOid) + { + try + { + var chatMessageSync = DAOFactory.GenericDAO.GetAllActive(); - if (cms != null) - { - var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewDC(cms); + ChatBewoMessageSync cms = null; + foreach (var item in chatMessageSync) + { + if (eOid == item.EmployeeOid) + { + cms = item; + } + } - return x; - } - - return null; - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } + if (cms != null) + { + var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewDC(cms); - public void ReactivateEmployee(long pOid, long pVersion) - { - try - { + return x; + } + + return null; + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public void ReactivateEmployee(long pOid, long pVersion) + { + try + { var e = DAOFactory.GenericDAO.LoadByID(pOid); - HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Reactivate); - - ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Active); - } - catch(Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public List GetAllCompactEmployees() - { - try - { - var s = PluginLoader.FindClass(); - - return s.GetAllCompactEmployees(); - - } - catch(Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public List LoadTeamsRelatedCustomerOids(long employeeOid) - { - try - { - return DAOFactory.SearchDAO.FindTeamRelatedCustomerOids(employeeOid); - } - catch (Exception e) - { - throw Utils.CreateBeWoFaultException(e); - } - } - - public List GetAllActiveEmployees() - { - try - { - var employees = DAOFactory.GenericDAO.GetAllActive(); - - return MapperFactory.EmployeeDC_Employee.MapToNewDCs(employees); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - /// - /// Lädt die aktiven CompactCustomerDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. - /// - /// Oid des Mitarbeiters für den die CompactCustomerDCs geladen werden sollen - /// Eine Liste mit CompactCustomerDCs - public List GetActiveCompactCustomersForEmployee(long? employeeOid) - { - try - { - var customers = DAOFactory.SearchDAO.GetAllCustomersForEmployee(employeeOid); - - return MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(customers); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - /// - /// Lädt die aktiven CompactEmployeeDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. - /// - /// Oid des Mitarbeiters für den die CompactEmployeeDCs geladen werden sollen - /// Eine Liste mit CompactEmployeeDCs - public List GetActiveCompactEmployeesForEmployee(long employeeOid) - { - try - { - var employees = DAOFactory.SearchDAO.GetAllActiveEmployeesForEmployee(employeeOid); - - return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(employees); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - /// - /// Lädt die Oids der Klienten der Teams und deren Mitgliedern und Anführern. - /// - /// Mitarbeiter dessen Teams durchsucht werden sollen. - /// Die Oid eines spezifischen Teams, das durchsucht werden soll. Ist die Oid null, werden alle mit dem angegebenen Mitarbeiter verknüpften Teams durchsucht. - /// - public List GetTeamRelatedCustomerOids(long employeeOid, long? teamOid) - { - try - { - var result = new List(); - - var teams = new List(); - - var teamOids = teams.Where(team => team.Oid.HasValue).Select(team => team.Oid.Value); - - if(teamOid.HasValue) - { - teams.Add(DAOFactory.GenericDAO.LoadByID(teamOid.Value)); - } - else - { - teams.AddRange(DAOFactory.SearchDAO.FindLeadingTeams(employeeOid)); - teams.AddRange(DAOFactory.SearchDAO.FindTeamsOfEmployee(employeeOid)); - } - - teams.DoForEach(team => - { - team.MemberList.Where(member => member.Oid.HasValue && member.Oid != employeeOid).DoForEach(member => - { - // Nur, wo der Klient auch vom Team betreut wird - result.AddRangeIfElementsNotIn( - member.Employee2CustomerList.Where( - employee2Customer => employee2Customer.CustomerOid.HasValue && - employee2Customer.Customer.Team2CustomerList.Any(team2Customer => team2Customer.TeamOid.HasValue && - teamOids.Contains(team2Customer.TeamOid.Value)) - ).Select(employee2Customer => employee2Customer.CustomerOid.Value) - ); - }); - }); - - return result; - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - /// - /// Lädt die aktiven TeamDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. - /// - /// Oid des Mitarbeiters für den die TeamDCs geladen werden sollen. Ist die employeeOid null, wird die des angemeldeten Mitarbeiters genommen. - /// Eine Liste mit TeamDCs - public List GetAllActiveTeamsForEmployee(long? employeeOid) - { - try - { - var teams = DAOFactory.SearchDAO.GetAllActiveTeamsForEmployee(employeeOid); - - return MapperFactory.TeamDC_Team.MapToNewDCs(teams); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - /// - /// Lädt die aktiven CompactTeamDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. - /// - /// Oid des Mitarbeiters für den die CompactTeamDCs geladen werden sollen. Ist die employeeOid null, wird die des angemeldeten Mitarbeiters genommen. - /// Eine Liste mit CompactTeamDCs - public List GetAllActiveCompactTeamsForEmployee(long? employeeOid) - { - try - { - var teams = DAOFactory.SearchDAO.GetAllActiveTeamsForEmployee(employeeOid); - - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - public List GetActiveSupportConceptsForEmployee(long? employeeOid, CustomerFilterEnum supportConceptFilter) - { - try - { - var supportConcepts = DAOFactory.SearchDAO.GetActiveSupportConceptsForEmployee(employeeOid, supportConceptFilter); - - return MapperFactory.SupportConceptDC_SupportConcept.MapToNewDCs(supportConcepts); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - public List FindTeamCustomers(long? teamOid) - { - try - { - var customerOids = new List(); - - ApplicationUser loggedInUser; - - if(LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null) - { - loggedInUser = LoggedInUserOperationContextExt.Current.User; - } - else - { - loggedInUser = SessionFacade.LoggedInUser; - } - - if(loggedInUser?.Employee != null) - { - var teams = new List(); - - if(teamOid.HasValue) - { - teams.Add(DAOFactory.GenericDAO.LoadByID(teamOid.Value)); - } - else if(loggedInUser.Employee.Oid.HasValue) - { - teams.AddRange(DAOFactory.SearchDAO.FindLeadingTeams(loggedInUser.Employee.Oid.Value)); - teams.AddRange(DAOFactory.SearchDAO.FindTeamsOfEmployee(loggedInUser.Employee.Oid.Value)); - } - - foreach(var team in teams) - { - if(!team.Oid.HasValue) - { - continue; - } - - var customers = DAOFactory.SearchDAO.FindCustomerOfTeam(team.Oid.Value); - foreach(var c in customers) - { - if(c.IsActive == ActivationTypeId.Active) - { - if(c.Oid.HasValue && !customerOids.Contains(c.Oid.Value)) - { - customerOids.Add(c.Oid.Value); - } - } - - } - - } - } - - return customerOids; - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - public List GetActiveCustomersForEmployee(long? employeeOid, CustomerFilterEnum customerFilter) - { - try - { - var customers = DAOFactory.SearchDAO.GetActiveCustomersForEmployee(employeeOid, customerFilter); - - return MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(customers); - } - catch(Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - public UrlaubsplanerRootDC BuildUrlaubsplanerRootObject(AbsenceOverviewFilterDC filter) - { - try - { - UrlaubsplanungsManager manager = new UrlaubsplanungsManager(); - return manager.BuildUrlaubsplanerRootObject(filter); - } - catch (Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - public decimal CalculateUrlaubstage(DateTime entryDate, DateTime? endDate, int anzahlArbeitstage, int restlicheTageImJahr, decimal? urlaubstageProJahr) // Enddatum in die Parameterliste - { - try - { - decimal urlaubstage = 0; - if (urlaubstageProJahr == null) - urlaubstageProJahr = 0m; - - if (entryDate.Day == 1 && entryDate.Month == 1 || entryDate.Day == 2 && entryDate.Month == 1) //Erster Tag im Jahr - { - //Prüfen, ob Enddatum Ende des Jahres oder früher ist - if(endDate == null) - { - if (anzahlArbeitstage < 5) // weniger als 5 Tage - urlaubstage = (decimal)urlaubstageProJahr / 5m * anzahlArbeitstage; - else - { - if (anzahlArbeitstage == 5) // 5 Tage - urlaubstage = (decimal)urlaubstageProJahr; - else if (anzahlArbeitstage == 6) // 6 Tage - urlaubstage = (decimal)urlaubstageProJahr; - } - } - else - { - if (anzahlArbeitstage < 5) // weniger als 5 Tage - urlaubstage = (decimal)urlaubstageProJahr / 5m * anzahlArbeitstage; - else - { - if (anzahlArbeitstage == 5) // 5 Tage - urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; - else if (anzahlArbeitstage == 6) // 6 Tage - urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; - } - } - - } - else if (/*entryDate.Day > 1 && */anzahlArbeitstage < 5) // Mitten im Jahr, weniger als 5 Tage - { - urlaubstage = (decimal)urlaubstageProJahr / 5m * 3m / 365m * restlicheTageImJahr; - } - else if (/*entryDate.Day > 1 && */anzahlArbeitstage >= 5) // Mitten im Jahr, 5 oder 6 Tage - { - urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; - } - - // Runden - //urlaubstage = 25.51m; - if (urlaubstage - (int)urlaubstage <= 0.1m) - { - urlaubstage = Math.Round(urlaubstage, MidpointRounding.AwayFromZero); - } - else if (urlaubstage - (int)urlaubstage <= 0.5m) - { - decimal digits = urlaubstage - (int)urlaubstage; - urlaubstage = urlaubstage - digits + 0.5m; - } - else if (urlaubstage - (int)urlaubstage <= 1.0m) - { - urlaubstage = Math.Ceiling(urlaubstage); - } - - return urlaubstage; - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - - } - - public List GetGeschenkteUrlaubstageForEmployee(long empOid) - { - try - { - List tage = new List(); - - var tageEntities = DAOFactory.SearchDAO.FindGeschenkteUrlaubstageByEmpOid(empOid); - if (tageEntities != null) - tage.AddRange(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewDCs(tageEntities)); - - return tage; - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public List GetGeschenkteUrlaubstageForYear(int year) - { - try - { - List tage = new List(); - - var tageEntities = DAOFactory.SearchDAO.FindGeschenkteUrlaubstageByYear(year); - if (tageEntities != null) - tage.AddRange(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewDCs(tageEntities)); - - return tage; - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public void InsertGeschenkterUrlaubstag(GeschenkterUrlaubstagDC dc) - { - try - { - var entity = MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewEntity(dc); - DAOFactory.GenericDAO.Insert(entity); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public void InsertMultipleGeschenkteUrlaubstage(List dcs) - { - try - { - DAOFactory.GenericDAO.Insert(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewEntities(dcs)); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public void DeleteGeschenkterUrlaubstag(long oid) - { - try - { - var lOriginal = DAOFactory.GenericDAO.LoadByID((long)oid); - DAOFactory.GenericDAO.Delete(lOriginal); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - - public List InsertAbwesenheitsInformationPrint(List abwesenheitsInformationPrints) - { - try - { - DAOFactory.GenericDAO.Insert(MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewEntities(abwesenheitsInformationPrints)); - - var prints = DAOFactory.GenericDAO.GetAll(); - - return MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(prints); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public List GetAbwesenheitsInformationPrints(List oids) - { - try - { - var entities = DAOFactory.GenericDAO.LoadByIDs(oids); - List objekte = MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(entities); - return objekte; - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public List GetAllAbwesenheitsInformationPrints() - { - try - { - var entities = DAOFactory.GenericDAO.GetAllActive(); - var dcs = MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(entities); - return dcs; - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public void DeleteAbwesenheitsInformationPrints(List dcs) - { - try - { - UrlaubsplanungsManager manager = new UrlaubsplanungsManager(); - manager.DeleteAbwesenheitsInformationPrints(dcs); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public List ErstelleUrlaubskontoDarstellung(EmployeeDC emp, int year) - { - try - { - var vs = PluginLoader.FindClass(); - return vs.BerechneUrlaubskontoZurDarstellung(emp, year); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public Dictionary BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(List empOids, int year, string reason) - { - try - { - var vs = PluginLoader.FindClass(); - return vs.BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(empOids, year, reason); - } - catch ( Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public decimal CountKrankheitstage(AbwesenheitsInformationDC infoDC) - { - try - { - var manager = new UrlaubsplanungsManager(); - return manager.CountKrankheitstage(infoDC); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - public decimal CountUrlaubstage(AbwesenheitsInformationDC infoDC) - { - try - { - var manager = new UrlaubsplanungsManager(); - return manager.CountUrlaubstage(infoDC); - } - catch (Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - - public List GetAbsenceOverview(AbsenceOverviewFilterDC filter) - { - try - { - var res = new List(); - var vs = PluginLoader.FindClass(); - - var allEmployees = DAOFactory.GenericDAO.GetAllActive().ToList(); - - List teams = new List(); - if (filter.Teams != null) - teams = DAOFactory.GenericDAO.GetActiveByIDs(filter.Teams) as List; - - - //foreach (var emp in allEmployees.OrderBy(x => x.Person.LastNameFirstName)) - List benoetigteMitarbeiter = new List(); - if (teams.Count == 0) - benoetigteMitarbeiter = allEmployees; - else - { - foreach (var team in teams) - { - benoetigteMitarbeiter.AddRange(team.MemberList); - } - } - benoetigteMitarbeiter.OrderBy(x => x.Person.LastNameFirstName).ToList(); - - foreach (var emp in benoetigteMitarbeiter) - { - if (filter.EmploymentType != null) - if (!emp.Contracts.Any(x => x.EmploymentType != null && filter.EmploymentType.Contains(x.EmploymentType.Oid.Value))) - continue; - - if (res.Any(e => e.EmployeeOid == emp.Oid)) - continue; - - var dict = vs.BerechneUrlaubskonto(emp, filter.Year); - - if (filter.AbsenceReasons != null) - emp.AbsenceTimes.RemoveRange(x => !filter.AbsenceReasons.Contains(x.AbsenceReason.Oid.Value)); - - //if (filter.Teams != null) - //{ - // bool isInTeam = false; - // foreach (var team in teams) - // { - // if (team.MemberList.Contains(emp)) - // isInTeam = true; - // } - // if (!isInTeam) - // continue; - //} - - var empDC = MapperFactory.EmployeeDC_Employee.MapToNewDC(emp); - if (dict.ContainsKey(filter.Year)) - { - empDC.Urlaubskonto = dict[filter.Year]; - } - else - { - int test = 0; - } - - res.Add(empDC); - } - - return res.OrderBy(e => e.LastNameFirstName).ToList(); - } - catch (Exception exception) - { - throw Utils.CreateBeWoFaultException(exception); - } - } - - - - public CompactEmployeeDC FindCompactEmployeeByFullname(string fullname) - { - try - { - var employee = DAOFactory.SearchDAO.FindEmployeeByFullname(fullname); - - return employee is null ? null : MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(employee); - } - catch(Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - - public TeamDC FindTeamByOid(long teamOid, long employeeOid) - { - try - { - var teams = GetAllActiveTeamsForEmployee(employeeOid); - - return teams.FirstOrDefault(t => t.TeamOid.HasValue && t.TeamOid.Value.Equals(teamOid)); - } - catch(Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - - public List LoadCompactTeamsByOid(List teamOids) - { - try - { - return teamOids is null ? new List() : MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetActiveByIDs(teamOids)); - } - catch(Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - - public List FindLeadingCompactTeamsOfEmployee(long employeeOid) - { - try - { - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.SearchDAO.FindLeadingTeams(employeeOid)); - } - catch(Exception ex) - { - throw Utils.CreateBeWoFaultException(ex); - } - } - } + HistoryCreator.MakeNewEmployeeHistoryEntry(e, MapperFactory.EmployeeDC_Employee.MapToNewDC(e), StatementType.Reactivate); + + ServiceLogic.SetActivationType(pOid, pVersion, ActivationTypeId.Active); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public List GetAllCompactEmployees() + { + try + { + var s = PluginLoader.FindClass(); + + return s.GetAllCompactEmployees(); + + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public List LoadTeamsRelatedCustomerOids(long employeeOid) + { + try + { + return DAOFactory.SearchDAO.FindTeamRelatedCustomerOids(employeeOid); + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + + public List GetAllActiveEmployees() + { + try + { + var employees = DAOFactory.GenericDAO.GetAllActive(); + + return MapperFactory.EmployeeDC_Employee.MapToNewDCs(employees); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + /// + /// Lädt die aktiven CompactCustomerDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. + /// + /// Oid des Mitarbeiters für den die CompactCustomerDCs geladen werden sollen + /// Eine Liste mit CompactCustomerDCs + public List GetActiveCompactCustomersForEmployee(long? employeeOid) + { + try + { + var customers = DAOFactory.SearchDAO.GetAllCustomersForEmployee(employeeOid); + + return MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(customers); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + /// + /// Lädt die aktiven CompactEmployeeDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. + /// + /// Oid des Mitarbeiters für den die CompactEmployeeDCs geladen werden sollen + /// Eine Liste mit CompactEmployeeDCs + public List GetActiveCompactEmployeesForEmployee(long employeeOid) + { + try + { + var employees = DAOFactory.SearchDAO.GetAllActiveEmployeesForEmployee(employeeOid); + + return MapperFactory.CompactEmployeeDC_Employee.MapToNewDCs(employees); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + /// + /// Lädt die Oids der Klienten der Teams und deren Mitgliedern und Anführern. + /// + /// Mitarbeiter dessen Teams durchsucht werden sollen. + /// Die Oid eines spezifischen Teams, das durchsucht werden soll. Ist die Oid null, werden alle mit dem angegebenen Mitarbeiter verknüpften Teams durchsucht. + /// + public List GetTeamRelatedCustomerOids(long employeeOid, long? teamOid) + { + try + { + var result = new List(); + + var teams = new List(); + + var teamOids = teams.Where(team => team.Oid.HasValue).Select(team => team.Oid.Value); + + if (teamOid.HasValue) + { + teams.Add(DAOFactory.GenericDAO.LoadByID(teamOid.Value)); + } + else + { + teams.AddRange(DAOFactory.SearchDAO.FindLeadingTeams(employeeOid)); + teams.AddRange(DAOFactory.SearchDAO.FindTeamsOfEmployee(employeeOid)); + } + + teams.DoForEach(team => + { + team.MemberList.Where(member => member.Oid.HasValue && member.Oid != employeeOid).DoForEach(member => + { + // Nur, wo der Klient auch vom Team betreut wird + result.AddRangeIfElementsNotIn( + member.Employee2CustomerList.Where( + employee2Customer => employee2Customer.CustomerOid.HasValue && + employee2Customer.Customer.Team2CustomerList.Any(team2Customer => team2Customer.TeamOid.HasValue && + teamOids.Contains(team2Customer.TeamOid.Value)) + ).Select(employee2Customer => employee2Customer.CustomerOid.Value) + ); + }); + }); + + return result; + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + /// + /// Lädt die aktiven TeamDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. + /// + /// Oid des Mitarbeiters für den die TeamDCs geladen werden sollen. Ist die employeeOid null, wird die des angemeldeten Mitarbeiters genommen. + /// Eine Liste mit TeamDCs + public List GetAllActiveTeamsForEmployee(long? employeeOid) + { + try + { + var teams = DAOFactory.SearchDAO.GetAllActiveTeamsForEmployee(employeeOid); + + return MapperFactory.TeamDC_Team.MapToNewDCs(teams); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + /// + /// Lädt die aktiven CompactTeamDCs für einen Mitarbeiter mit Rücksichtnahme auf dessen Rechte. + /// + /// Oid des Mitarbeiters für den die CompactTeamDCs geladen werden sollen. Ist die employeeOid null, wird die des angemeldeten Mitarbeiters genommen. + /// Eine Liste mit CompactTeamDCs + public List GetAllActiveCompactTeamsForEmployee(long? employeeOid) + { + try + { + var teams = DAOFactory.SearchDAO.GetAllActiveTeamsForEmployee(employeeOid); + + return MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + public List GetActiveSupportConceptsForEmployee(long? employeeOid, CustomerFilterEnum supportConceptFilter) + { + try + { + var supportConcepts = DAOFactory.SearchDAO.GetActiveSupportConceptsForEmployee(employeeOid, supportConceptFilter); + + return MapperFactory.SupportConceptDC_SupportConcept.MapToNewDCs(supportConcepts); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + public List FindTeamCustomers(long? teamOid) + { + try + { + var customerOids = new List(); + + ApplicationUser loggedInUser; + + if (LoggedInUserOperationContextExt.Current != null && LoggedInUserOperationContextExt.Current.User != null) + { + loggedInUser = LoggedInUserOperationContextExt.Current.User; + } + else + { + loggedInUser = SessionFacade.LoggedInUser; + } + + if (loggedInUser?.Employee != null) + { + var teams = new List(); + + if (teamOid.HasValue) + { + teams.Add(DAOFactory.GenericDAO.LoadByID(teamOid.Value)); + } + else if (loggedInUser.Employee.Oid.HasValue) + { + teams.AddRange(DAOFactory.SearchDAO.FindLeadingTeams(loggedInUser.Employee.Oid.Value)); + teams.AddRange(DAOFactory.SearchDAO.FindTeamsOfEmployee(loggedInUser.Employee.Oid.Value)); + } + + foreach (var team in teams) + { + if (!team.Oid.HasValue) + { + continue; + } + + var customers = DAOFactory.SearchDAO.FindCustomerOfTeam(team.Oid.Value); + foreach (var c in customers) + { + if (c.IsActive == ActivationTypeId.Active) + { + if (c.Oid.HasValue && !customerOids.Contains(c.Oid.Value)) + { + customerOids.Add(c.Oid.Value); + } + } + + } + + } + } + + return customerOids; + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + public List GetActiveCustomersForEmployee(long? employeeOid, CustomerFilterEnum customerFilter) + { + try + { + var customers = DAOFactory.SearchDAO.GetActiveCustomersForEmployee(employeeOid, customerFilter); + + return MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(customers); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + public UrlaubsplanerRootDC BuildUrlaubsplanerRootObject(AbsenceOverviewFilterDC filter) + { + try + { + UrlaubsplanungsManager manager = new UrlaubsplanungsManager(); + return manager.BuildUrlaubsplanerRootObject(filter); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + public decimal CalculateUrlaubstage(DateTime entryDate, DateTime? endDate, int anzahlArbeitstage, int restlicheTageImJahr, decimal? urlaubstageProJahr) // Enddatum in die Parameterliste + { + try + { + decimal urlaubstage = 0; + if (urlaubstageProJahr == null) + urlaubstageProJahr = 0m; + + if (entryDate.Day == 1 && entryDate.Month == 1 || entryDate.Day == 2 && entryDate.Month == 1) //Erster Tag im Jahr + { + //Prüfen, ob Enddatum Ende des Jahres oder früher ist + if (endDate == null) + { + if (anzahlArbeitstage < 5) // weniger als 5 Tage + urlaubstage = (decimal)urlaubstageProJahr / 5m * anzahlArbeitstage; + else + { + if (anzahlArbeitstage == 5) // 5 Tage + urlaubstage = (decimal)urlaubstageProJahr; + else if (anzahlArbeitstage == 6) // 6 Tage + urlaubstage = (decimal)urlaubstageProJahr; + } + } + else + { + if (anzahlArbeitstage < 5) // weniger als 5 Tage + urlaubstage = (decimal)urlaubstageProJahr / 5m * anzahlArbeitstage; + else + { + if (anzahlArbeitstage == 5) // 5 Tage + urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; + else if (anzahlArbeitstage == 6) // 6 Tage + urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; + } + } + + } + else if (/*entryDate.Day > 1 && */anzahlArbeitstage < 5) // Mitten im Jahr, weniger als 5 Tage + { + urlaubstage = (decimal)urlaubstageProJahr / 5m * 3m / 365m * restlicheTageImJahr; + } + else if (/*entryDate.Day > 1 && */anzahlArbeitstage >= 5) // Mitten im Jahr, 5 oder 6 Tage + { + urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; + } + + // Runden + //urlaubstage = 25.51m; + if (urlaubstage - (int)urlaubstage <= 0.1m) + { + urlaubstage = Math.Round(urlaubstage, MidpointRounding.AwayFromZero); + } + else if (urlaubstage - (int)urlaubstage <= 0.5m) + { + decimal digits = urlaubstage - (int)urlaubstage; + urlaubstage = urlaubstage - digits + 0.5m; + } + else if (urlaubstage - (int)urlaubstage <= 1.0m) + { + urlaubstage = Math.Ceiling(urlaubstage); + } + + return urlaubstage; + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + + } + + public List GetGeschenkteUrlaubstageForEmployee(long empOid) + { + try + { + List tage = new List(); + + var tageEntities = DAOFactory.SearchDAO.FindGeschenkteUrlaubstageByEmpOid(empOid); + if (tageEntities != null) + tage.AddRange(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewDCs(tageEntities)); + + return tage; + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public List GetGeschenkteUrlaubstageForYear(int year) + { + try + { + List tage = new List(); + + var tageEntities = DAOFactory.SearchDAO.FindGeschenkteUrlaubstageByYear(year); + if (tageEntities != null) + tage.AddRange(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewDCs(tageEntities)); + + return tage; + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public void InsertGeschenkterUrlaubstag(GeschenkterUrlaubstagDC dc) + { + try + { + var entity = MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewEntity(dc); + DAOFactory.GenericDAO.Insert(entity); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public void InsertMultipleGeschenkteUrlaubstage(List dcs) + { + try + { + DAOFactory.GenericDAO.Insert(MapperFactory.GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.MapToNewEntities(dcs)); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public void DeleteGeschenkterUrlaubstag(long oid) + { + try + { + var lOriginal = DAOFactory.GenericDAO.LoadByID((long)oid); + DAOFactory.GenericDAO.Delete(lOriginal); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + + public List InsertAbwesenheitsInformationPrint(List abwesenheitsInformationPrints) + { + try + { + DAOFactory.GenericDAO.Insert(MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewEntities(abwesenheitsInformationPrints)); + + var prints = DAOFactory.GenericDAO.GetAll(); + + return MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(prints); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public List GetAbwesenheitsInformationPrints(List oids) + { + try + { + var entities = DAOFactory.GenericDAO.LoadByIDs(oids); + List objekte = MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(entities); + return objekte; + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public List GetAllAbwesenheitsInformationPrints() + { + try + { + var entities = DAOFactory.GenericDAO.GetAllActive(); + var dcs = MapperFactory.AbwesenheitsInformationPrintDC_AbwesenheitsInformationPrint.MapToNewDCs(entities); + return dcs; + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public void DeleteAbwesenheitsInformationPrints(List dcs) + { + try + { + UrlaubsplanungsManager manager = new UrlaubsplanungsManager(); + manager.DeleteAbwesenheitsInformationPrints(dcs); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public List ErstelleUrlaubskontoDarstellung(EmployeeDC emp, int year) + { + try + { + var vs = PluginLoader.FindClass(); + return vs.BerechneUrlaubskontoZurDarstellung(emp, year); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public Dictionary BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(List empOids, int year, string reason) + { + try + { + var vs = PluginLoader.FindClass(); + return vs.BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(empOids, year, reason); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public decimal CountKrankheitstage(AbwesenheitsInformationDC infoDC) + { + try + { + var manager = new UrlaubsplanungsManager(); + return manager.CountKrankheitstage(infoDC); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + public decimal CountUrlaubstage(AbwesenheitsInformationDC infoDC) + { + try + { + var manager = new UrlaubsplanungsManager(); + return manager.CountUrlaubstage(infoDC); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + + public List GetAbsenceOverview(AbsenceOverviewFilterDC filter) + { + try + { + var res = new List(); + var vs = PluginLoader.FindClass(); + + var allEmployees = DAOFactory.GenericDAO.GetAllActive().ToList(); + + List teams = new List(); + if (filter.Teams != null) + teams = DAOFactory.GenericDAO.GetActiveByIDs(filter.Teams) as List; + + + //foreach (var emp in allEmployees.OrderBy(x => x.Person.LastNameFirstName)) + List benoetigteMitarbeiter = new List(); + if (teams.Count == 0) + benoetigteMitarbeiter = allEmployees; + else + { + foreach (var team in teams) + { + benoetigteMitarbeiter.AddRange(team.MemberList); + } + } + benoetigteMitarbeiter.OrderBy(x => x.Person.LastNameFirstName).ToList(); + + foreach (var emp in benoetigteMitarbeiter) + { + if (filter.EmploymentType != null) + if (!emp.Contracts.Any(x => x.EmploymentType != null && filter.EmploymentType.Contains(x.EmploymentType.Oid.Value))) + continue; + + if (res.Any(e => e.EmployeeOid == emp.Oid)) + continue; + + var dict = vs.BerechneUrlaubskonto(emp, filter.Year); + + if (filter.AbsenceReasons != null) + emp.AbsenceTimes.RemoveRange(x => !filter.AbsenceReasons.Contains(x.AbsenceReason.Oid.Value)); + + //if (filter.Teams != null) + //{ + // bool isInTeam = false; + // foreach (var team in teams) + // { + // if (team.MemberList.Contains(emp)) + // isInTeam = true; + // } + // if (!isInTeam) + // continue; + //} + + var empDC = MapperFactory.EmployeeDC_Employee.MapToNewDC(emp); + if (dict.ContainsKey(filter.Year)) + { + empDC.Urlaubskonto = dict[filter.Year]; + } + else + { + int test = 0; + } + + res.Add(empDC); + } + + return res.OrderBy(e => e.LastNameFirstName).ToList(); + } + catch (Exception exception) + { + throw Utils.CreateBeWoFaultException(exception); + } + } + + + + public CompactEmployeeDC FindCompactEmployeeByFullname(string fullname) + { + try + { + var employee = DAOFactory.SearchDAO.FindEmployeeByFullname(fullname); + + return employee is null ? null : MapperFactory.CompactEmployeeDC_Employee.MapToNewDC(employee); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + + public TeamDC FindTeamByOid(long teamOid, long employeeOid) + { + try + { + var teams = GetAllActiveTeamsForEmployee(employeeOid); + + return teams.FirstOrDefault(t => t.TeamOid.HasValue && t.TeamOid.Value.Equals(teamOid)); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + + public List LoadCompactTeamsByOid(List teamOids) + { + try + { + return teamOids is null ? new List() : MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetActiveByIDs(teamOids)); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + + public List FindLeadingCompactTeamsOfEmployee(long employeeOid) + { + try + { + return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.SearchDAO.FindLeadingTeams(employeeOid)); + } + catch (Exception ex) + { + throw Utils.CreateBeWoFaultException(ex); + } + } + } } \ No newline at end of file