public void Announce(Schedule schedule) { var timeboxes = _timeBoxRepository.GetTimeBoxesFrom(schedule.Campaign, schedule.Start, schedule.End); foreach (var timeBox in timeboxes) { foreach (var term in timeBox.TermSet) { var hrDate = term.GetLowestTerm().SaftyGetProperty <DateTime, IAssignment>(o => o.SaftyGetHrDate()); if (!hrDate.IsInTheRange(schedule)) { continue; } //backupTerm var backup = new BackupTerm(term.Id, timeBox.Agent.Id, term.Start, term.End, term.Text, term.Background, term.Level) { HrDate = hrDate }; if (term.ParentTerm != null) { backup.ParentTermId = term.ParentTerm.Id; } term.SaftyInvoke <AssignmentBase>(o => backup.WorkingTotals = o.WorkingTotals); _timeBoxRepository.SaveOrUpdate(backup); } } }
public void OnPostInsert(PostInsertEvent @event) { if (IsEnabled) { var entity = default(Term); if (@event.TryCatchEntity(ref entity)) { var statelessSession = @event.Persister.Factory.OpenStatelessSession(); using (var tx = statelessSession.BeginTransaction()) { var employeeId = entity.GetSnapshotValue <Guid>("EmployeeId"); var backup = new BackupTerm(entity.Id, employeeId, entity.Start, entity.End, entity.Text, entity.Background, entity.Level); if (entity.Bottom != null) { backup.ParentTermId = entity.Bottom.Id; } statelessSession.Insert(backup); tx.Commit(); } } } }
public void Announce(Schedule schedule) { var timeboxes = _timeBoxRepository.GetTimeBoxesFrom(schedule.Campaign, schedule.Start, schedule.End); foreach (var timeBox in timeboxes) { foreach (var term in timeBox.TermSet) { var hrDate = term.GetLowestTerm().SaftyGetProperty<DateTime, IAssignment>(o => o.SaftyGetHrDate()); if (!hrDate.IsInTheRange(schedule)) continue; //backupTerm var backup = new BackupTerm(term.Id, timeBox.Agent.Id, term.Start, term.End, term.Text, term.Background, term.Level) { HrDate = hrDate }; if (term.ParentTerm != null) backup.ParentTermId = term.ParentTerm.Id; term.SaftyInvoke<AssignmentBase>(o => backup.WorkingTotals = o.WorkingTotals); _timeBoxRepository.SaveOrUpdate(backup); } } }