using System; using System.Collections.Generic; using System.Threading.Tasks; using Fab2ApprovalSystem.DMO; using Fab2ApprovalSystem.Models; using Fab2ApprovalSystem.Utilities; using Quartz; namespace Fab2ApprovalSystem.Workers { public class OOOTrainingReportJob:IJob { UserAccountDMO userDMO = new UserAccountDMO(); AdminDMO adminDMO = new AdminDMO(); TrainingDMO trainingDMO = new TrainingDMO(); ECN_DMO ecnDMO = new ECN_DMO(); public EmailUtilities emailer = new EmailUtilities(); async Task IJob.Execute(IJobExecutionContext context) { await Task.Run(() => { string emailBody = "

Mesa Approval Open Training Assignments Report - OOO


"; emailBody += "

The following contains open training assignments in the Mesa Approval system for out of office users."; emailBody += " Please ensure they complete their training assignments promptly upon their return.


"; emailBody += ""; //Get all users set up to receive the training report email. List trainingReportUsers = adminDMO.GetTrainingReportUsers(); List emailList = new List(); foreach (var user in trainingReportUsers) { string userEmail = userDMO.GetUserByID(user.UserId).Email; emailList.Add(userEmail); } //emailList.Add("Chase.Tucker@infineon.com"); //Get a list of open trainings List openTrainings = trainingDMO.GetAllOpenTrainings(); foreach (Training training in openTrainings) { string trainingSection = ""; int trainingSectionUserCount = 0; string ecnTitle = ecnDMO.GetECN(training.ECN).Title; trainingSection += "

" + training.ECN + " - " + ecnTitle + "

"; trainingSection += ""; trainingSection += ""; List openAssignments = trainingDMO.GetOpenAssignmentsByTrainingID(training.TrainingID); foreach (TrainingAssignment assignment in openAssignments) { if (userDMO.GetUserByID(assignment.UserID).OOO) { trainingSectionUserCount++; DateTime? assignmentDate = assignment.DateAssigned; string DateAssigned = assignmentDate.HasValue ? assignmentDate.Value.ToString("MM/dd/yyyy") : ""; trainingSection += ""; trainingSection += ""; } } trainingSection += "
NameDate Assigned
" + assignment.FullName + "" + DateAssigned + "
"; if (trainingSectionUserCount > 0) emailBody += trainingSection; } string recipientEmail = ""; List ccRecipients = emailList; emailer.SendNotification("MesaFabApproval@infineon.com", ccRecipients, "Mesa Approval Open Training Report - OOO", emailBody, "Open Training Report - OOO"); }); } } }