コード例 #1
0
ファイル: TicketController.cs プロジェクト: kashyap21/TLFMS
        private bool FrowardEdit(CS_Ticket UpdateTicket)
        {
            CS_Log logObj = new CS_Log();

            _objTicket.Update(UpdateTicket);
            logObj.Title             = UpdateTicket.Title;
            logObj.Comment           = "ACCEPTED";
            logObj.CreatedOn         = DateTime.Now;
            logObj.ForwardToEmployee = null;
            logObj.EmployeeId        = GetEmployeeId();
            logObj.StatusId          = UpdateTicket.StatusId;
            logObj.TicketId          = UpdateTicket.TicketId;
            logObj.CustumerId        = UpdateTicket.CustomerId;
            logObj.PriorityName      = FindPriorityBySLAId(UpdateTicket.SLAId);
            // Method call to insert in log table
            _objLog.Insert(logObj);
            return(true);
        }
コード例 #2
0
ファイル: TicketController.cs プロジェクト: kashyap21/TLFMS
        public ActionResult Edit(TicketViewModel ticketViewModel)
        {
            CS_Ticket    ticketObj = new CS_Ticket();
            CS_Log       logObj    = new CS_Log();
            CS_EmailLink linkObj   = new CS_EmailLink();

            int    statusId     = _dbContext.CS_Ticket.Where(s => s.TicketId == ticketViewModel.TicketId).Select(a => a.StatusId).Single();
            int    slaId        = _dbContext.CS_Ticket.Where(s => s.TicketId == ticketViewModel.TicketId).Select(a => a.SLAId).Single();
            int    employId     = _dbContext.CS_Ticket.Where(s => s.TicketId == ticketViewModel.TicketId).Select(a => a.EmployeeId).Single();
            string ticketNumber = _dbContext.CS_Ticket.Where(t => t.TicketId == ticketViewModel.TicketId).Select(a => a.TicketNumber).Single();
            string priority     = _dbContext.CS_SLA.Where(p => p.SLAId == ticketViewModel.IDSLA).Select(a => a.PriorityName).Single();
            string status       = _dbContext.CS_Status.Where(s => s.StatusId == ticketViewModel.StatusId).Select(a => a.Status).Single();

            if (ticketViewModel.ForwardTo != null)
            {
                if (ticketViewModel.ProjectId != 1)
                {
                    linkObj.TicketId = ticketViewModel.TicketId;
                    linkObj.Link     = Utility.GenerateLink(linkObj.TicketId);
                    if ((_dbContext.CS_EmailLink.Where(p => p.TicketId == linkObj.TicketId).Count()) == 1)
                    {
                        _objLink.Update(linkObj);
                        string employeeBody = EmailContent.EmployeeBody(linkObj.Link);

                        string employeeEmail  = _dbContext.Employee.Where(e => e.Id == ticketViewModel.ForwardTo).Select(a => a.Email_Official).SingleOrDefault();
                        Thread NotifyEmployee = new Thread(() => SendMail.SendAcknowledgement(employeeEmail, EmailContent.EmployeeSubject, employeeBody, ticketNumber, priority, status));
                        NotifyEmployee.Start();
                    }
                }
            }

            if (statusId != ticketViewModel.StatusId ||
                slaId != ticketViewModel.IDSLA)
            {
                //if (ticketViewModel.StatusId == 6)
                //{
                //    linkObj.TicketId = _dbContext.CS_EmailLink.Where(t => t.TicketId == ticketViewModel.TicketId).Select(a => a.TicketId).Single();
                //    _objLink.DeleteById(linkObj.TicketId);
                //}
                string emailFrom           = _dbContext.Customer.Where(e => e.Id == ticketViewModel.CustomerId).Select(a => a.Email).Single();
                Thread AcknowledgeCustomer = new Thread(() => SendMail.SendAcknowledgement(emailFrom, EmailContent.CustomerSubject, EmailContent.CustomerBody, ticketNumber, priority, status));
                AcknowledgeCustomer.Start();
            }
            // Find priority level from SLAId
            Int16 prioritylevel = 0;

            foreach (var item in _objSLA.GetAll())
            {
                if (item.SLAId == ticketViewModel.IDSLA)
                {
                    prioritylevel = item.PriorityLevel;
                    break;
                }
            }

            // Create ticket object with edited value for update
            ticketObj.TicketId          = ticketViewModel.TicketId;
            ticketObj.Title             = ticketViewModel.Title;
            ticketObj.CreatedOn         = ticketViewModel.CreatedOn;
            ticketObj.PriorityLevel     = Convert.ToByte(prioritylevel);
            ticketObj.Description       = _dbContext.CS_Ticket.Where(x => x.TicketId == ticketViewModel.TicketId).Select(d => d.Description).SingleOrDefault();
            ticketObj.CustomerId        = ticketViewModel.CustomerId;
            ticketObj.EmployeeId        = GetEmployeeId();
            ticketObj.ForwardToEmployee = ticketViewModel.ForwardTo;
            ticketObj.SLAId             = ticketViewModel.IDSLA;
            ticketObj.StatusId          = ticketViewModel.StatusId;
            ticketObj.ProjectId         = ticketViewModel.ProjectId;
            ticketObj.TicketNumber      = ticketViewModel.TicketNumber;
            ticketObj.LastComment       = ticketViewModel.Comment;
            // New object for log table to insert entry
            logObj.Title             = ticketViewModel.Title;
            logObj.Comment           = ticketViewModel.Comment;
            logObj.CreatedOn         = DateTime.Now;
            logObj.ForwardToEmployee = ticketViewModel.ForwardTo;
            logObj.EmployeeId        = GetEmployeeId();
            logObj.StatusId          = ticketViewModel.StatusId;
            logObj.TicketId          = ticketViewModel.TicketId;
            logObj.CustumerId        = ticketViewModel.CustomerId;
            logObj.PriorityName      = FindPriorityBySLAId(ticketViewModel.IDSLA);

            // Methods call update ticket table
            _objTicket.Update(ticketObj);
            // Method call to insert in log table
            _objLog.Insert(logObj);
            return(RedirectToAction(ActionName.TicketIndex));
        }
コード例 #3
0
ファイル: TicketController.cs プロジェクト: kashyap21/TLFMS
        public ActionResult Generate(TicketViewModel ticketViewModel)
        {
            CS_Ticket    ticketObj = new CS_Ticket();
            CS_Log       logObj    = new CS_Log();
            CS_EmailLink linkObj   = new CS_EmailLink();

            ticketObj.CreatedOn   = DateTime.Now;
            ticketObj.EmployeeId  = GetEmployeeId();
            ticketObj.Description = ticketViewModel.Description;
            ticketObj.CustomerId  = ticketViewModel.CustomerId;
            ticketObj.SLAId       = ticketViewModel.IDSLA;
            ticketObj.Title       = ticketViewModel.Title;
            ticketObj.ProjectId   = ticketViewModel.ProjectId;
            ticketObj.StatusId    = 1;
            ticketObj.LastComment = "";
            _objTicket.Insert(ticketObj);

            // To add entry in Log table
            int ticketid = _dbContext.CS_Ticket.Max(item => item.TicketId);

            logObj.TicketId     = ticketid;
            logObj.Title        = ticketViewModel.Title;
            logObj.Comment      = "Ticket Created";
            logObj.CreatedOn    = ticketObj.CreatedOn;
            logObj.EmployeeId   = ticketObj.EmployeeId;
            logObj.CustumerId   = ticketObj.CustomerId;
            logObj.StatusId     = 1;
            logObj.PriorityName = FindPriorityBySLAId(ticketObj.SLAId);

            _objLog.Insert(logObj);
            string ReadUrl = ReadURL();
            bool   result  = (ReadUrl.All(Char.IsDigit) && ReadUrl.Length > 0);

            // Update Ticket generated In calllog table
            if (result == true)
            {
                int callLogid = Convert.ToInt32(ReadUrl);
                //// CS_CallLog callObj = new CS_CallLog();
                //var row = (from u in _dbContext.CS_CallLog
                //           where u.CallLogId == callLogid
                //           select u);

                //foreach (var entity in row)
                //{
                //    callObj = entity;
                //    callObj.IsTicketGenerated = true;
                //}
                CS_CallLog callObj = _objCallLog.FindById(callLogid);

                callObj.IsTicketGenerated = true;
                callObj.TicketId          = ticketObj.TicketId;
                _objCallLog.Update(callObj);
            }

            //Fetch customer email id
            string emailFrom = _dbContext.Customer.Where(e => e.Id == ticketObj.CustomerId).Select(a => a.Email).SingleOrDefault();
            //Fetch status name
            string status = _dbContext.CS_Status.Where(s => s.StatusId == ticketObj.StatusId).Select(a => a.Status).SingleOrDefault();
            //Fetch priority name
            string priority = _dbContext.CS_SLA.Where(p => p.SLAId == ticketObj.SLAId).Select(a => a.PriorityName).SingleOrDefault();
            //Fetch ticket number
            string ticketNumber = _dbContext.CS_Ticket.Where(t => t.TicketId == ticketObj.TicketId).Select(a => a.TicketNumber).SingleOrDefault();
            //Fectch employee email
            string employeeEmail = _dbContext.Employee.Where(e => e.Id == ticketObj.EmployeeId).Select(a => a.Email_Official).SingleOrDefault();

            linkObj.TicketId = ticketObj.TicketId;
            linkObj.Link     = Utility.GenerateLink(linkObj.TicketId);
            _objLink.Insert(linkObj);
            string employeeBody = EmailContent.EmployeeBody(linkObj.Link);

            Thread AcknowledgeCustomer = new Thread(() => SendMail.SendAcknowledgement(emailFrom, EmailContent.CustomerSubject, EmailContent.CustomerBody, ticketNumber, priority, status));
            Thread NotifyEmployee      = new Thread(() => SendMail.SendAcknowledgement(employeeEmail, EmailContent.EmployeeSubject, employeeBody, ticketNumber, priority, status));

            AcknowledgeCustomer.Start();
            NotifyEmployee.Start();

            return(RedirectToAction(ActionName.TicketIndex, ControllerName.Ticket));
        }