You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.9 KiB

  1. using FluentScheduler;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace Sevomin.Models.Helpers.ScheduledTasks
  8. {
  9. public class NewApplication : ITask
  10. {
  11. public async void Execute()
  12. {
  13. var avalins = SevominDbContext.Current.DovominJobs.Where(dj => dj.ApplyDate.Date >= DateTime.Now.AddDays(-2).Date).Select(a => a.Job.Avalin);
  14. foreach (var avalin in avalins.Distinct())
  15. {
  16. var applies = SevominDbContext.Current.DovominJobs.Where(dj => dj.Job.AvalinId == avalin.Id && dj.ApplyDate.Date == DateTime.Now.AddDays(-2).Date);
  17. foreach (var apply in applies)
  18. {
  19. SevominEmailer emailer = new SevominEmailer();
  20. emailer.EmailType = EmailType.NewApplication;
  21. emailer.Parameters.Add("avalin-name", avalin.DisplayName);
  22. emailer.Parameters.Add("avalin-contact", string.IsNullOrWhiteSpace(apply.Job.ContactPersonName) ? "" : apply.Job.ContactPersonName);
  23. emailer.Parameters.Add("dovomin-name", apply.Dovomin.DisplayName);
  24. if (string.IsNullOrWhiteSpace(apply.Job.ContactPersonEMail))
  25. await emailer.SendAsync(avalin.Email, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true);
  26. else
  27. {
  28. await emailer.SendAsync(avalin.Email, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true);
  29. await emailer.SendAsync(apply.Job.ContactPersonEMail, "اعلام آمادگی جدید برای فرصت شغلی اعلام شده در سومین", true);
  30. }
  31. }
  32. }
  33. }
  34. }
  35. }