예제 #1
0
        // GET api/<controller>/5
        public TEEscalationMatrixModel Get(int id)
        {
            TEESCALATIONMATRIX item = db.TEESCALATIONMATRIces.Find(id);

            TEEscalationMatrixModel model = new TEEscalationMatrixModel();

            TETransformEntityNModel translator = new TETransformEntityNModel();

            model = translator.TransformAtoB(item, model);

            if (item.QueueID != null)
            {
                TEQueue q = db.TEQueues.Find(item.QueueID.Value);
                if (q != null)
                {
                    model.Queue = new TEQueue
                    {
                        Uniqueid  = q.Uniqueid,
                        QueueName = q.QueueName,
                        QueueID   = q.QueueID,
                    }
                }
                ;
            }
            if (item.ManagerID != null)
            {
                TEEmpBasicInfo mgr = db.TEEmpBasicInfoes.Find(item.ManagerID.Value);
                if (mgr != null)
                {
                    model.Manager = new TEEmpBasicInfo
                    {
                        Uniqueid      = mgr.Uniqueid,
                        FirstName     = mgr.FirstName,
                        LastName      = mgr.LastName,
                        Mobile        = mgr.Mobile,
                        OfficialEmail = mgr.OfficialEmail,
                    }
                }
                ;
            }
            if (item.Priority != null)
            {
                int            picklistid = Convert.ToInt32(item.Priority);
                TEPickListItem p          = db.TEPickListItems.Find(picklistid);
                if (p != null)
                {
                    model.PriorityName = p.Description;
                }
            }

            return(model);
        }
예제 #2
0
        public IEnumerable <TEQueueDepartmentModel> GetTEQueueDepartmentBYiD(int Uniqueid)
        {
            //return db.TEQueueDepartments.Where(x=>x.IsDeleted==false);

            var y = (from tqd in db.TEQueueDepartments
                     join tq in db.TEQueues on tqd.QueueID equals tq.Uniqueid
                     join td in db.TEDepartments on tqd.DepartmentID equals td.Uniqueid
                     join tc in db.TELineOfBusinesses on tqd.TELineOfBussiness equals tc.Uniqueid
                     join tca in db.TECategories on tqd.CategoryID equals tca.Uniqueid
                     join tsf in db.TESubFunctions on tqd.SubfunctionID equals tsf.Uniqueid
                     where (tqd.Uniqueid == Uniqueid)
                     // && (uob.Project == cnt.proj)
                     //&&(uob.Uniqueid==cnt.Unitid)
                     orderby tqd.Uniqueid
                     select new
            {
                tqd.Uniqueid,
                tqd.QueueID,
                tq.QueueName,
                tqd.DepartmentID,
                td.Name,
                tqd.TELineOfBussiness,
                tcName = tc.Name,
                tqd.CategoryID,
                tcaName = tca.Name,
                tqd.SubfunctionID,
                tsfname = tsf.Name,
                tqd.SLACritical,
                tqd.SLAHigh,
                tqd.SLALow,
                tqd.SLAMedium,
                tqd.AUTOASSIGNMENT,
                tqd.AUTOCOMMUNICATION,
                tqd.Default_assignee
            });

            List <TEQueueDepartmentModel> list = new List <TEQueueDepartmentModel>();

            foreach (var item in y)
            {
                TEEmpBasicInfo defaultAssignee = null;
                if (item.Default_assignee > 0)
                {
                    db.Configuration.ProxyCreationEnabled = false;
                    defaultAssignee = db.TEEmpBasicInfoes.Find(item.Default_assignee);
                }
                list.Add(new TEQueueDepartmentModel()
                {
                    Uniqueid             = item.Uniqueid,
                    QueueID              = item.QueueID,
                    QueueName            = item.QueueName,
                    DepartmentID         = item.DepartmentID,
                    DepartmentName       = item.Name,
                    TELineOfBussiness    = item.TELineOfBussiness,
                    CompanyName          = item.tcName,
                    CategoryID           = item.CategoryID,
                    CategoryName         = item.tcaName,
                    SubfunctionID        = item.SubfunctionID,
                    SubfunctionName      = item.tsfname,
                    SLACritical          = item.SLACritical,
                    SLAHigh              = item.SLAHigh,
                    SLALow               = item.SLALow,
                    SLAMedium            = item.SLAMedium,
                    TEEmpDefaultAssignee = defaultAssignee,
                    AUTOASSIGNMENT       = item.AUTOASSIGNMENT,
                    AUTOCOMMUNICATION    = item.AUTOCOMMUNICATION,
                });
            }
            return(list);
        }
예제 #3
0
        // GET api/<controller>
        public IEnumerable <TEEscalationMatrixModel> Get()
        {
            db.Configuration.ProxyCreationEnabled = false;
            List <TEESCALATIONMATRIX> list = db.TEESCALATIONMATRIces.Where(x => x.IsDeleted == false).ToList();

            List <TEEscalationMatrixModel> result = new List <TEEscalationMatrixModel>();

            foreach (var item in list)
            {
                TEEscalationMatrixModel model = new TEEscalationMatrixModel();

                TETransformEntityNModel translator = new TETransformEntityNModel();

                model = translator.TransformAtoB(item, model);

                if (item.QueueID != null)
                {
                    TEQueue q = db.TEQueues.Find(item.QueueID.Value);
                    if (q != null)
                    {
                        model.Queue = new TEQueue
                        {
                            Uniqueid  = q.Uniqueid,
                            QueueName = q.QueueName,
                            QueueID   = q.QueueID,
                        }
                    }
                    ;
                }
                if (model.Queue == null)
                {
                    model.Queue = new TEQueue();
                }
                if (item.ManagerID != null)
                {
                    TEEmpBasicInfo mgr = db.TEEmpBasicInfoes.Find(item.ManagerID.Value);
                    if (mgr != null)
                    {
                        model.Manager = new TEEmpBasicInfo
                        {
                            Uniqueid      = mgr.Uniqueid,
                            FirstName     = mgr.FirstName,
                            LastName      = mgr.LastName,
                            Mobile        = mgr.Mobile,
                            OfficialEmail = mgr.OfficialEmail,
                        }
                    }
                    ;
                }
                if (model.Manager == null)
                {
                    model.Manager = new TEEmpBasicInfo();
                }
                if (item.Priority != null)
                {
                    int            picklistid = Convert.ToInt32(item.Priority);
                    TEPickListItem p          = db.TEPickListItems.Find(picklistid);
                    if (p != null)
                    {
                        model.PriorityName = p.Description;
                    }
                }
                result.Add(model);
            }
            return(result);
        }
예제 #4
0
        public string TEEscalationMails()
        {
            DateTime Today = System.DateTime.Today;
            int      cnt   = 0;
            List <TEComplainceModel> teissueresult        = Mgr.GetIssues().Where(x => !IssuesStatus.EscalationStatus.Contains(x.Status)).ToList();
            List <TEComplainceModel> escalatedissueresult = new List <TEComplainceModel>();
            List <TEEmpBasicInfo>    ManagerList          = new List <TEEmpBasicInfo>();

            foreach (TEComplainceModel item in teissueresult)
            {
                DateTime          EscalationDate = System.DateTime.Today;
                TEQueueDepartment Escalation     = db.TEQueueDepartments.Where(x => x.QueueID == item.QueueID && x.CategoryID == item.CategoryID).FirstOrDefault();
                try
                {
                    if (Escalation != null)
                    {
                        if (item.PriorityName == "Normal")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLAMedium));
                            item.issuePriority = 3;
                        }
                        else if (item.PriorityName == "Critical")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLAHigh));
                            item.issuePriority = 2;
                        }
                        else if (item.PriorityName == "Emergency")
                        {
                            EscalationDate     = item.CreatedOn.AddDays(Convert.ToDouble(Escalation.SLACritical));
                            item.issuePriority = 1;
                        }
                    }
                    if (Today > EscalationDate)
                    {
                        TimeSpan difference = Today - item.CreatedOn.Date;
                        item.Age = Convert.ToInt32(difference.TotalDays);
                        UserProfile Assige = new UserProfile();
                        Assige = db.UserProfiles.Where(x => x.UserId == item.AssignedTo).FirstOrDefault();
                        string         AssigneUserId = Convert.ToString(item.AssignedTo);
                        TEEmpBasicInfo AssigneBasic  = null;
                        if (Assige != null)
                        {
                            AssigneBasic = new TEEmpBasicInfo();
                            AssigneBasic = db.TEEmpBasicInfoes.Where(x => x.UserId == Assige.UserName).FirstOrDefault();
                        }
                        TEEmpAssignmentDetail AssigneDetails = null;
                        if (AssigneBasic != null)
                        {
                            AssigneDetails = new TEEmpAssignmentDetail();
                            AssigneDetails = db.TEEmpAssignmentDetails.Where(x => x.TEEmpBasicInfo == AssigneBasic.Uniqueid && x.IsDeleted == false && x.Status == "Active").FirstOrDefault();
                        }
                        if (AssigneDetails != null)
                        {
                            TEEmpBasicInfo ManagerBasic = db.TEEmpBasicInfoes.Find(AssigneDetails.TEEmpBasicInfo_ReportingTo);
                            if (ManagerBasic != null)
                            {
                                item.AssigneManagerId   = ManagerBasic.Uniqueid;
                                item.AssigneManagerName = ManagerBasic.FirstName + " " + ManagerBasic.LastName;
                                ManagerList.Add(ManagerBasic);
                            }
                        }
                        escalatedissueresult.Add(item);
                    }
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }
            }
            ManagerList = ManagerList.Distinct().Where(a => a.OfficialEmail != null).ToList();
            foreach (TEEmpBasicInfo basicitem in ManagerList)
            {
                EmailSendModel SendDetails = new EmailSendModel();
                var            potemp1     = db.TEEmailTemplates.Where(x => x.ModuleName == "TicketEscalation").FirstOrDefault();
                string         bodytag     = "";

                foreach (TEComplainceModel item in escalatedissueresult.OrderBy(x => x.issuePriority).ThenByDescending(x => x.Age).Where(x => x.AssigneManagerId == basicitem.Uniqueid).ToList())
                {
                    try
                    {
                        bodytag = bodytag + "<tr style='font-size: 9pt !important;'><td style='text-align:right;'>@ticket number@</td><td>@Category@</td><td>@Requestor Name@</td><td>@Requestor Date@</td><td>@Priority@</td><td>@Resolution Date@</td><td style='text-align:right;'>@Age@</td><td>@Technician name@</td><td>@Description@</td></tr>";
                        bodytag = bodytag.Replace("@ticket number@", item.Uniqueid.ToString());
                        bodytag = bodytag.Replace("@Requestor Name@", (item.RaisedByName));
                        bodytag = bodytag.Replace("@Requestor Date@", item.CreatedOn == null ? "" : String.Format("{0:dd-MM-yyyy}", item.CreatedOn));
                        bodytag = bodytag.Replace("@Manager Name@", item.AssigneManagerName);
                        bodytag = bodytag.Replace("@Category@", item.Categoryname);
                        bodytag = bodytag.Replace("@Priority@", item.PriorityName);
                        bodytag = bodytag.Replace("@Resolution Date@", item.Estimated_Close_date == null ? "" : String.Format("{0:dd-MM-yyyy}", item.Estimated_Close_date));
                        bodytag = bodytag.Replace("@Description@", item.Descritpion);
                        bodytag = bodytag.Replace("@Technician name@", item.AssignToName);
                        bodytag = bodytag.Replace("@Age@", item.Age.ToString());
                    }
                    catch (Exception ex)
                    {
                        return(ex.Message);
                    }
                }
                SendDetails.Subject = potemp1.Subject;
                SendDetails.Html    = potemp1.EmailTemplate.Replace("@bodytag@", bodytag);
                SendDetails.Html    = SendDetails.Html.Replace("@Manager Name@", basicitem.FirstName + " " + basicitem.LastName);
                SendDetails.To      = basicitem.OfficialEmail;
                EmailMgr.SendEmail(SendDetails);
            }
            return("Success");
        }