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);
                }
            }
        }
示例#2
0
        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();
                    }
                }
            }
        }
示例#3
0
        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);
                }
            }
        }