Esempio n. 1
0
        public ActionResult ClosedTicket(ViewModel.Ticket m)
        {
            try
            {
                Ticket obj = ViewModel.Ticket.ConvertToTicketBusiness(m);
                obj.Requester    = m.Requester.Email;
                obj.TicketStatus = TicketStatus.Closed.ToString();
                obj.Escalation   = User.Identity.Name;
                //obj.CreatedBy = User.Identity.Name;
                //obj.CreatedDate = DateTime.Now;
                obj.UpdatedBy   = User.Identity.Name;
                obj.UpdatedDate = DateTime.Now;

                var objHistory = SaveTicketHistory(obj, "Closed");

                if (obj.IsValid && objHistory.IsValid)
                {
                    obj        = obj.Save();
                    objHistory = objHistory.Save();
                }

                ViewBag.SuccessMsg = "Success";
            }
            catch (Exception ex)
            {
                return(View(m));
            }

            return(RedirectToAction("IndexInbox", "Inbox"));
        }
Esempio n. 2
0
        public ActionResult DisplayTicket(long ticketId)
        {
            Ticket   ticket = Ticket.GetTicket(ticketId);
            Customer cust   = Customer.GetCustomer(ticket.Requester);

            ViewModel.Ticket m = new ViewModel.Ticket(ticket, cust);
            var list           = TicketHistoryInfoList.GetTicketActivityByTicketNo(ticket.TicketNo).ToList();

            List <string> agenIdList = new List <string>();
            AgentInfo     info       = AgentInfo.GetAgentInfo(User.Identity.Name);

            agenIdList.Add(info.idCustAgent);
            if (info.IsSupervisor)
            {
                var infolist = AgentInfoList.GetAgentByGroup(info.GroupName).Where(x => x.SPVID == info.idCustAgent).ToList();
                foreach (var item in infolist)
                {
                    agenIdList.Add(item.idCustAgent);
                }
            }

            list = list.Where(x => agenIdList.Contains(x.TicketOwner)).OrderByDescending(x => x.UpdatedDate).ToList();

            ViewBag.TicketHistory = list;
            return(View(m));
        }
Esempio n. 3
0
        // GET: Ticketing
        public ActionResult Index(string email, string phoneNumber)
        {
            Ticketing ticket = Ticketing.Create(User.Identity.Name, email);

            ViewModel.Ticket m = new ViewModel.Ticket(ticket.TicketObject, ticket.CustObject);
            if (string.IsNullOrEmpty(m.Requester.Custno))
            {
                m.Requester.Custno = phoneNumber;
            }

            return(View(m));
        }
Esempio n. 4
0
        public ActionResult UpdateTicket(ViewModel.Ticket m)
        {
            try
            {
                foreach (var item in m.Solution)
                {
                    if (item.UpdateDate == DateTime.MinValue)
                    {
                        item.UpdateDate = DateTime.Now;
                    }
                }

                Ticket old = Ticket.GetTicket(m.IdTicket);
                Ticket obj = ViewModel.Ticket.ConvertToTicketBusiness(m);
                obj.Requester    = m.Requester.Email;
                obj.TicketStatus = TicketStatus.Open.ToString();
                obj.Escalation   = User.Identity.Name;
                //obj.CreatedBy = User.Identity.Name;
                //obj.CreatedDate = DateTime.Now;
                obj.UpdatedBy   = User.Identity.Name;
                obj.UpdatedDate = DateTime.Now;
                //string updatecommand = GetUpdateCommand(m, old);
                var objHistory = SaveTicketHistory(obj, "Update Ticket");

                Customer cust = Customer.GetCustomer(obj.Requester);
                if (cust != null)
                {
                    cust.FirstName   = m.Requester.FirstName;
                    cust.LastName    = m.Requester.LastName;
                    cust.CustNo      = m.Requester.Custno;
                    cust.CompanyName = m.Requester.CompanyName;

                    if (cust.IsValid)
                    {
                        cust = cust.Save();
                    }
                }

                if (obj.IsValid && objHistory.IsValid)
                {
                    obj        = obj.Save();
                    objHistory = objHistory.Save();
                }

                ViewBag.SuccessMsg = "Success";
            }
            catch (Exception ex)
            {
                return(View(m));
            }

            return(RedirectToAction("IndexInbox", "Inbox"));
        }
Esempio n. 5
0
        public ActionResult UpdateTicket(string id)
        {
            Ticket   ticket = Ticket.GetTicket(id);
            Customer cust   = Customer.GetCustomer(ticket.Requester);

            if (cust == null)
            {
                cust = Customer.NewCustomer();
            }
            ViewModel.Ticket vm = new ViewModel.Ticket(ticket, cust);
            return(View(vm));
        }
Esempio n. 6
0
        public ActionResult AddSolution(string id)
        {
            Ticket   ticket = Ticket.GetTicket(id);
            Customer cust   = Customer.GetCustomer(ticket.Requester);

            if (cust == null)
            {
                cust = Customer.NewCustomer();
                return(RedirectToAction("Index", new { email = cust.Email, phoneNumber = cust.CustNo }));
            }
            ViewModel.Ticket vm = new ViewModel.Ticket(ticket, cust);
            return(View(vm));
        }
Esempio n. 7
0
        public ActionResult OpenTicket(string id)
        {
            Ticket   ticket = Ticket.GetTicket(id);
            Customer cust   = Customer.GetCustomer(ticket.Requester);

            if (cust == null)
            {
                cust = Customer.NewCustomer();
                return(RedirectToAction("Index", "Ticketing", new { email = cust.Email, phoneNumber = cust.CustNo }));
            }
            ViewModel.Ticket vm = new ViewModel.Ticket(ticket, cust);
            ViewBag.TicketHistory = TicketHistoryInfoList.GetTicketActivityByTicketNoAndUsername(ticket.TicketNo, User.Identity.Name);
            return(View(vm));
        }
Esempio n. 8
0
        public string GetUpdateCommand(ViewModel.Ticket ticket, Ticket obj)
        {
            string updatecommand = string.Empty;

            //created, add solution, escalated, closed
            if (ticket.IdTicket == 0)
            {
                updatecommand = "Created";
            }
            if (ticket.Solution != null && ticket.Solution.Count > 0)
            {
                string currentsolution = Newtonsoft.Json.JsonConvert.SerializeObject(ticket.Solution);
                if (!currentsolution.Equals(obj.Solution))
                {
                    updatecommand = "Add Solution";
                }
            }
            if (ticket.TicketStatus == "Closed")
            {
                updatecommand = "Closed";
            }
            return(updatecommand);
        }
Esempio n. 9
0
        public ActionResult Index(ViewModel.Ticket m)
        {
            string errorMessage = string.Empty;

            try
            {
                foreach (var item in m.Solution)
                {
                    if (item.UpdateDate == DateTime.MinValue)
                    {
                        item.UpdateDate = DateTime.Now;
                    }
                }

                using (DatabaseManager ctx = new DatabaseManager(true))
                {
                    if (string.IsNullOrEmpty(m.TicketNo))
                    {
                        m.TicketNo = TicketNo.Create(User.Identity.Name, "TICKET");
                    }

                    Ticket obj = ViewModel.Ticket.ConvertToTicketBusiness(m);
                    obj.Requester    = m.Requester.Email;
                    obj.TicketStatus = TicketStatus.Open.ToString();
                    obj.Escalation   = User.Identity.Name;
                    obj.CreatedBy    = User.Identity.Name;
                    obj.CreatedDate  = DateTime.Now;
                    obj.UpdatedBy    = obj.CreatedBy;
                    obj.UpdatedDate  = obj.CreatedDate;

                    string updatecommand = "Created";//GetUpdateCommand(m, obj);
                    var    objHistory    = SaveTicketHistory(obj, updatecommand);

                    if (m.isClosed)
                    {
                        obj.TicketStatus        = TicketStatus.Closed.ToString();
                        objHistory.TicketStatus = TicketStatus.Closed.ToString();
                    }

                    if (obj.IsValid && objHistory.IsValid)
                    {
                        obj        = obj.Save();
                        objHistory = objHistory.Save();
                    }
                    else
                    {
                        System.Text.StringBuilder sb = new System.Text.StringBuilder();
                        foreach (var item in obj.GetBrokenRules())
                        {
                            sb.AppendLine(item.Description);
                        }

                        foreach (var item in objHistory.GetBrokenRules())
                        {
                            sb.AppendLine(item.Description);
                        }
                        errorMessage = sb.ToString();
                    }

                    Customer cust = ViewModel.Ticket.ConvertToCustomerBusiness(m.Requester);

                    if (string.IsNullOrEmpty(cust.CreatedBy))
                    {
                        cust.CreatedBy   = User.Identity.Name;
                        cust.CreatedDate = DateTime.Now;
                    }

                    cust.UpdatedBy   = User.Identity.Name;
                    cust.UpdatedDate = DateTime.Now;

                    if (cust.IsValid)
                    {
                        cust = cust.Save();
                    }
                    else
                    {
                        System.Text.StringBuilder sb = new System.Text.StringBuilder();
                        foreach (var item in cust.GetBrokenRules())
                        {
                            sb.AppendLine(item.Description);
                        }
                        errorMessage = errorMessage + "---" + sb.ToString();
                    }

                    if (string.IsNullOrEmpty(errorMessage))
                    {
                        ctx.SaveChanges();
                        ViewBag.SuccessMsg = "Success";
                    }
                    else
                    {
                        throw new Exception("Terjadi kesalahan!");
                    }
                }
            }
            catch (Exception ex)
            {
                errorMessage     = ex.Message + "---" + errorMessage;
                ViewBag.ErrorMsg = errorMessage;

                LogActivity log = LogActivity.NewLogActivity();
                log.ControllerName = "Ticketing";
                log.ActionName     = "Index";
                log.LogData        = Newtonsoft.Json.JsonConvert.SerializeObject(errorMessage);
                log.CreatedBy      = User.Identity.Name;
                log.CreatedDate    = DateTime.Now;
                log = log.Save();
                return(View(m));
            }

            return(RedirectToAction("IndexInbox", "Inbox"));
        }