From 7c718ba75b762d45c47609a90dd845cbf6509ab0 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 12 Feb 2019 19:43:34 +0100 Subject: [PATCH] CB --- Host/Multitenancy/demo.config | 3 +- .../ResourceServiceImp.cs | 47 +++++++++++++------ 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Host/Multitenancy/demo.config b/Host/Multitenancy/demo.config index 187f0f6a8..e38a898cc 100644 --- a/Host/Multitenancy/demo.config +++ b/Host/Multitenancy/demo.config @@ -24,7 +24,7 @@ --> - Server=localhost;Password=root;User ID=root;Initial Catalog=vkmaachensbd + Server=localhost;Password=root;User ID=root;Initial Catalog=lori @@ -40,5 +40,4 @@ - \ No newline at end of file diff --git a/Service/ServiceImplementations/ResourceServiceImp.cs b/Service/ServiceImplementations/ResourceServiceImp.cs index 7cca04e02..0a3db1604 100644 --- a/Service/ServiceImplementations/ResourceServiceImp.cs +++ b/Service/ServiceImplementations/ResourceServiceImp.cs @@ -16,7 +16,6 @@ using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.Extensions; - using DevExpress.XtraScheduler; using Resource = BeWo.Data.Entities.Resource; using Utils = BeWo.Service.Core.Utils; @@ -872,23 +871,34 @@ namespace BeWo.Service.ServiceImplementations } } - // Geänderte Serientermine werden anhand der RecurrenceId aus der Datenbank geladen und der Typ auf "gelöscht" gesetzt - var recurrenceIds = Utils.ExtractRecurrenceIdFromRecurrenceString(lOriginals); - - if(recurrenceIds.Count > 0) + // Geänderte Serientermine werden anhand der RecurrenceId aus der Datenbank geladen und der Typ auf "gelöscht" gesetzt + //CB: Nur von Type = 1 also Root prüfen + foreach (var org in lOriginals) { - var exceptionsToDelete = DAOFactory.SearchDAO.FindAppointmentsByRecurrenceId(recurrenceIds); - - exceptionsToDelete.DoForEach(exception => + if (org.Type == 1) { - if(exception.Oid != null && exception.Version != null) + List appointments = new List(); + appointments.Add(org); + var recurrenceIds = Utils.ExtractRecurrenceIdFromRecurrenceString(appointments); + + if (recurrenceIds.Count > 0) { - pOid2Version.AddIfNotIn(new KeyValuePair(exception.Oid.Value, exception.Version.Value)); + var exceptionsToDelete = DAOFactory.SearchDAO.FindAppointmentsByRecurrenceId(recurrenceIds); + + exceptionsToDelete.DoForEach(exception => + { + if (exception.Oid != null && exception.Version != null) + { + pOid2Version.AddIfNotIn(new KeyValuePair(exception.Oid.Value, + exception.Version.Value)); + } + }); } - }); + } } - - foreach(var kvp in pOid2Version) + + + foreach (var kvp in pOid2Version) { ServiceLogic.SetActivationType(new Dictionary { { kvp.Key, kvp.Value } }, ActivationTypeId.Deleted); } @@ -1041,8 +1051,15 @@ namespace BeWo.Service.ServiceImplementations try { var absenceTimes = DAOFactory.SearchDAO.GetAllAbsenceTimesInIntervalByEmployee(pStart, pEnd, pEmployeeOid, pHasRightToSeeAllEmployeeAppointments); - - return MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absenceTimes).OrderBy(a => a.Start).ToList(); + var dcList = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(absenceTimes); + foreach (var at in dcList) + { + if (at.End.HasValue) + { + at.End = at.End.Value.Date.AddDays(1).AddTicks(-1); + } + } + return dcList.OrderBy(a => a.Start).ToList(); } catch(Exception e) {