Ejemplo n.º 1
0
        public void Execute(IJobExecutionContext context)
        {
            var      yesterday        = DateTime.Today.AddDays(-1);
            DateTime today            = DateTime.Now;
            TimeSpan currentHour      = TimeSpan.Parse(today.ToString("HH:mm:ss"));
            var      shortDate        = today.Date;
            bool     sendNotification = false;

            try
            {
                // Get tickets in Unassigned state
                IList <Ticket> getUnassignedTickets = db.Tickets.Where(x => x.Id_Consultant == 1).ToList();

                // Get Yesterday's consultant with less Performance Average
                var getLessAvgPerformanceScore = db.PerformanceEvalutions
                                                 .Where(x => x.Date == yesterday)
                                                 .Select(x => x.PerformanceAverage)
                                                 .Min();

                var getLessConsultantInfo = db.PerformanceEvalutions
                                            .Where(x => x.PerformanceAverage == getLessAvgPerformanceScore &&
                                                   x.Date == yesterday);


                // Extract consultant email in emailToSend static var
                emailToSend = getLessConsultantInfo.Select(x => x.Consultant.Email).First();

                foreach (var t in getUnassignedTickets)
                {
                    Ticket ticket = db.Tickets.Find(t.Id);
                    ticket.Id_Consultant  = getLessConsultantInfo.Select(x => x.Consultant.ID).First();
                    ticket.AssignmentDate = shortDate;
                    ticket.AssignmentTime = currentHour;
                    db.Set <Ticket>().AddOrUpdate(ticket);
                    db.SaveChanges();
                    sendNotification = true;
                }

                if (sendNotification == true)
                {
                    SendEmail();
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.ToString());
            }
        }
Ejemplo n.º 2
0
 public void UpdateSLA(SLA sla)
 {
     context.Set <SLA>().AddOrUpdate(sla);
 }
Ejemplo n.º 3
0
 public void UpdateTicket(Ticket ticket)
 {
     context.Set <Ticket>().AddOrUpdate(ticket);
 }
Ejemplo n.º 4
0
 public void UpdateImpact(Impact impact)
 {
     context.Set <Impact>().AddOrUpdate(impact);
 }
Ejemplo n.º 5
0
 public void UpdateCustomer(Customer consultant)
 {
     context.Set <Customer>().AddOrUpdate(consultant);
 }
Ejemplo n.º 6
0
 public void UpdateTaskType(TaskType taskType)
 {
     context.Set <TaskType>().AddOrUpdate(taskType);
 }
Ejemplo n.º 7
0
 public void UpdateKPI(KPI kpi)
 {
     context.Set <KPI>().AddOrUpdate(kpi);
 }
Ejemplo n.º 8
0
 public void UpdateSeverity(Severity severity)
 {
     context.Set <Severity>().AddOrUpdate(severity);
 }
Ejemplo n.º 9
0
 public void UpdateTechnology(Technology technology)
 {
     context.Set <Technology>().AddOrUpdate(technology);
 }
Ejemplo n.º 10
0
 public void UpdateActivity(TicketActivity activity)
 {
     context.Set <TicketActivity>().AddOrUpdate(activity);
 }
Ejemplo n.º 11
0
 public void UpdateConsultant(Consultant consultant)
 {
     context.Set <Consultant>().AddOrUpdate(consultant);
 }