Exemple #1
0
        public void LoadData(IAgentSeatModel agentSeat)
        {
            var extNo = agentSeat.Profile.ExtNo;

            if (_agentStatusRecords.ContainsKey(extNo))
            {
                agentSeat.AgentStatus = _agentStatusRecords[extNo];

                if (_foundAgents.ContainsKey(agentSeat.AgentStatus.AgentAcdid))
                {
                    agentSeat.CurrentAgent = _foundAgents[agentSeat.AgentStatus.AgentAcdid];

                    //var sliceTerms = agentSeat.CurrentAgent.TermSet.SliceIntoPieces();
                    //FillTerminalGap(sliceTerms, _watchRange.Start, _watchRange.End);
                    //agentSeat.CurrentActivity =
                    //    filledTerminalGapTerms.LastOrDefault(o => o.Start <= _watchPoint && o.End > _watchPoint);

                    var found = agentSeat.CurrentAgent.TermSet.Retrieve <Term>(_watchPoint, _watchPoint)
                                .LastOrDefault(o => _watchPoint.IsInTheRange(o));

                    if (found != null)
                    {
                        agentSeat.CurrentActivity = new RtaaSlicedTerm()
                        {
                            Start     = found.Start,
                            End       = found.End,
                            Level     = found.Level,
                            OnService = found.OnService,
                            Text      = found.Text
                        };
                    }
                    else
                    {
                        agentSeat.CurrentActivity = new RtaaSlicedTerm()
                        {
                            Start     = _watchRange.Start,
                            End       = _watchRange.End,
                            Level     = -1,
                            OnService = false
                        };
                    }
                }
                else
                {
                    //anonymous timebox
                    agentSeat.CurrentAgent    = new TimeBox(new DateRange(_watchRange.Start, _watchRange.End), new Employee()); // TODO:rewrite anonymous timebox instance
                    agentSeat.CurrentActivity = null;
                }

                agentSeat.ShowOn = _agentStatusRepository.GetLastStatus;
            }
            else
            {
                agentSeat.StatusNotFound();
            }

            var occupation = _planned.ContainsKey(extNo) ? _planned[extNo] : default(Occupation);

            agentSeat.Arrangement = occupation as SeatArrangement;//_seatBoxRepository.GetPlannedSeatArrangement(_plannedSeat[extNo].Seat, _watchPoint);
            agentSeat.SeatEvent   = occupation as SeatEvent;
        }
        public void LoadData(IAgentSeatModel agentSeat)
        {
            var extNo = agentSeat.Profile.ExtNo;

            if (_agentStatusRecords.ContainsKey(extNo))
            {
                agentSeat.AgentStatus = _agentStatusRecords[extNo];

                if (_foundAgents.ContainsKey(agentSeat.AgentStatus.AgentAcdid))
                {
                    agentSeat.CurrentAgent = _foundAgents[agentSeat.AgentStatus.AgentAcdid];

                    //var sliceTerms = agentSeat.CurrentAgent.TermSet.SliceIntoPieces();
                    //FillTerminalGap(sliceTerms, _watchRange.Start, _watchRange.End);
                    //agentSeat.CurrentActivity =
                    //    filledTerminalGapTerms.LastOrDefault(o => o.Start <= _watchPoint && o.End > _watchPoint);

                    var found = agentSeat.CurrentAgent.TermSet.Retrieve<Term>(_watchPoint, _watchPoint)
                        .LastOrDefault(o => _watchPoint.IsInTheRange(o));

                    if (found != null)
                    {
                        agentSeat.CurrentActivity = new RtaaSlicedTerm()
                        {
                            Start = found.Start,
                            End = found.End,
                            Level = found.Level,
                            OnService = found.OnService,
                            Text = found.Text
                        };
                    }
                    else
                    {
                        agentSeat.CurrentActivity = new RtaaSlicedTerm()
                        {
                            Start = _watchRange.Start,
                            End = _watchRange.End,
                            Level = -1,
                            OnService = false
                        };
                    }
                }
                else
                {
                    //anonymous timebox 
                    agentSeat.CurrentAgent = new TimeBox(new DateRange(_watchRange.Start, _watchRange.End), new Employee()); // TODO:rewrite anonymous timebox instance
                    agentSeat.CurrentActivity = null;
                }

                agentSeat.ShowOn = _agentStatusRepository.GetLastStatus;
            }
            else
                agentSeat.StatusNotFound();

            var occupation = _planned.ContainsKey(extNo) ? _planned[extNo] : default(Occupation);

            agentSeat.Arrangement = occupation as SeatArrangement;//_seatBoxRepository.GetPlannedSeatArrangement(_plannedSeat[extNo].Seat, _watchPoint);
            agentSeat.SeatEvent = occupation as SeatEvent;

        }