public static void Main()
var weekDay = (DateTime.Now.DayOfWeek == DayOfWeek.Sunday) ? 7 : (int)DateTime.Now.DayOfWeek;
var daysTilNextWeek = 7 - campaign.WeeklyFrequency.DayOfWeeks.Max() + 1;
var weekRecurrance = (int)daysTilNextWeek + (7 * campaign.WeeklyFrequency.Reccurance);
if ((7 - ConvertsDayOfWeekToInt(campaign.StartDate.DayOfWeek) > 0) && campaign.LastRun == null && campaign.StartDate.DayOfWeek != campaign.WeeklyFrequency.DayOfWeeks.Max())
if (campaign.WeeklyFrequency.DayOfWeeks.Contains(DateTime.Now.DayOfWeek))
totalEmailsSent += ProcessEmailCampaign(campaign);
if (campaign.LastRun != null && campaign.LastRun.Value.AddDays(weekRecurrance) == DateTime.Now)
if (campaign.WeeklyFrequency.DayOfWeeks.Contains(DateTime.Now.DayOfWeek))
totalEmailsSent += ProcessEmailCampaign(campaign);