public void FillAbsencePlanningTimes(AbsenceTimePlanning entity) { if (entity != null) { Absence a = GetById(entity.AbsenceID); if (a != null) entity.Absence = a; } }
public AbsencePlanningResponse SaveAbsencePlanning(AbsencePlanningResponse response) { // diction id of empluyees which absences or holidays number changed Dictionary<long, object> d_ids = new Dictionary<long, object>(); if (response.DeletedIds != null) { List<long> ids = new List<long>(response.DeletedIds); List<AbsenceTimePlanning> listAbsences = AbsenceTimePlanningService.FindByIDList(ids); if (listAbsences != null) { foreach (AbsenceTimePlanning a in listAbsences) d_ids[a.EmployeeID] = a; } AbsenceTimePlanningService.DeleteList(listAbsences);// DeleteListByID(ids); } if (response.ModifiedEntity != null) { List<EmployeeHolidaysInfo> lst = new List<EmployeeHolidaysInfo>(response.ModifiedEntity); EmployeeHolidaysInfoService.SaveOrUpdateList(lst); foreach (EmployeeHolidaysInfo o in lst) d_ids[o.EmployeeID] = o; } if (response.NewAbsences != null) { foreach (AbsenceTimeRange a in response.NewAbsences) { Debug.Assert(a.EmployeeID > 0); Debug.Assert(a.AbsenceID > 0); Debug.Assert(a.ID <= 0); d_ids[a.EmployeeID] = a; ClearEmployeePlanningTime(a.EmployeeID, a.Date, a.Date); AbsenceTimePlanning entity = new AbsenceTimePlanning(a.Begin, a.End, a.Time, a.AbsenceID, a.EmployeeID); entity.ID = 0; entity.Date = a.Date; AbsenceTimePlanningService.SaveOrUpdate(entity); a.ID = entity.ID; } } if (d_ids.Count > 0) { long[] ids = new long[d_ids.Count]; d_ids.Keys.CopyTo(ids, 0); ExEmployeeHolidays.CalculateAndUpdate(ids, response.Year); } return response; }