Пример #1
0
        public ActionResult AssignTicket(TicketAssignment ticket)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //Authentication
                    var client = Connector.GetHttpClient();
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(scheme: "Bearer",
                                                                                               parameter: Session["TokenNumber"].ToString() + ":" + Session["UserName"]);

                    HttpResponseMessage response = client.PutAsJsonAsync <TicketAssignment>($"Ticket/AssignTicket", ticket).Result;
                    if (response.IsSuccessStatusCode)
                    {
                        return(Json(new { success = true, message = "Successfully Assigned" }));
                    }
                }
                return(Json(new { success = false, message = "Something went wrong" }));
            }
            catch (Exception ex)
            {
                GlobalVariable.log.Write(LogLevel.Error, ex);
                return(Json(new { success = false, message = "Oops! Something went wrong, please try again later" }, JsonRequestBehavior.AllowGet));
            }
        }
        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;
            }
        }