示例#1
0
        protected override void preProcessing()
        {
            if (replyTo == POST_REPLY.TO_USER)
            {
                var currAssingedEmpId = getCurrAssignedEmp() == null ? 0 : getCurrAssignedEmp().Id;
                if (currAssingedEmpId == 0 || currAssingedEmpId != ticketParam.CurrLoginUserId) //assigned to current login agent
                {
                    autoAssigned(getCurrLoginAgent());
                }
            }

            if (replyTo == POST_REPLY.TO_AGENT && WAIT_ACTIONED_BY_USER.Equals(ticket.WaitActionedBy))
            {
                ticket.WaitActionedBy = WAIT_ACTIONED_BY_AGENT;
            }
            else if (replyTo == POST_REPLY.TO_USER && WAIT_ACTIONED_BY_AGENT.Equals(ticket.WaitActionedBy))
            {
                ticket.WaitActionedBy = WAIT_ACTIONED_BY_USER;
            }
        }
        protected override void postProcessing()
        {
            bool   defaultTeam = false, defaultAgent = false;
            string assignDesc = "";

            if (ticketParam.TeamId == 0)
            {
                var ticketItem = dataProcessingProvider.getTicketItem(ticket.TicketItemId);
                if (ticketItem == null && ticketItem.TeamId == 0)
                {
                    throw new Exception("Default team cannot be found");
                }
                ticketParam.TeamId = ticketItem.TeamId;
                defaultTeam        = true;
            }


            if (ticketParam.Assignee == 0)
            {
                int defaultAssignee = dataProcessingProvider.getDefaultAgentByTeamId(ticketParam.TeamId);
                if (defaultAssignee > 0)
                {
                    ticketParam.Assignee = defaultAssignee;
                    defaultAgent         = true;
                }
            }

            if (defaultTeam)
            {
                assignDesc = "Default team is selected. ";
            }

            if (defaultAgent)
            {
                assignDesc += "Default agent is selected";
            }

            TicketAssignment ticketAssignment = new TicketAssignment()
            {
                TicketActivityId = ticketActivity.Id,
                TeamId           = ticketParam.TeamId,
                AssigneeId       = ticketParam.Assignee,
            };

            if (!String.IsNullOrEmpty(assignDesc))
            {
                ticketAssignment.Description = assignDesc;
            }

            dataProcessingProvider.saveTicketAssignment(ticketAssignment);

            //bool updateTicketRequired = false;

            if (!WAIT_ACTIONED_BY_AGENT.Equals(ticket.WaitActionedBy) && isUpladLastActivity())
            {
                ticket.WaitActionedBy = WAIT_ACTIONED_BY_AGENT;
                //updateTicketRequired = true;
            }

            if (ticketParam.TeamId > 0 && ticketParam.TeamId != ticket.LastAssTeamId)
            {
                ticket.LastAssTeamId = ticketParam.TeamId;
                //updateTicketRequired = true;
            }

            var assingedEmpId = 0;

            if (ticketParam.Assignee != 0)
            {
                var assignedAgent = dataProcessingProvider.getAgentById(ticketParam.Assignee);
                assingedEmpId = assignedAgent.EmpId;
            }

            if (assingedEmpId != ticket.LastAssTeamId)
            {
                ticket.LastAssEmpId = assingedEmpId;
                //updateTicketRequired = true;
            }
        }