using FluentScheduler; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sevomin.Models.Helpers.ScheduledTasks { public class NewApplication : ITask { public async void Execute() { var avalins = SevominDbContext.Current.DovominJobs.Where(dj => dj.ApplyDate.Date >= DateTime.Now.AddDays(-2).Date).Select(a => a.Job.Avalin); foreach (var avalin in avalins.Distinct()) { var applies = SevominDbContext.Current.DovominJobs.Where(dj => dj.Job.AvalinId == avalin.Id && dj.ApplyDate.Date == DateTime.Now.AddDays(-2).Date); foreach (var apply in applies) { SevominEmailer emailer = new SevominEmailer(); emailer.EmailType = EmailType.NewApplication; emailer.Parameters.Add("avalin-name", avalin.DisplayName); emailer.Parameters.Add("avalin-contact", string.IsNullOrWhiteSpace(apply.Job.ContactPersonName) ? "" : apply.Job.ContactPersonName); emailer.Parameters.Add("dovomin-name", apply.Dovomin.DisplayName); if (string.IsNullOrWhiteSpace(apply.Job.ContactPersonEMail)) await emailer.SendAsync(avalin.Email, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true); else { await emailer.SendAsync(avalin.Email, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true); await emailer.SendAsync(apply.Job.ContactPersonEMail, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true); } } } } } }