private static async Task <IList <Plan> > GetTodayPlansWithVideoAndResponsible(CloudTable plansTable) { var filter = TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("Owner", "ne", null), "and", TableQuery.GenerateFilterCondition("Video", "ne", null) ); return(await PlanHelpers.GetPlansForDate(plansTable, DateTime.Today, filter)); }
public static async Task CloseVote( [TimerTrigger("0 0 11 * * *")] TimerInfo timer, // 11AM daily [Table("plans")] CloudTable plansTable, [Table("votes")] CloudTable votesTable, [Table("proposals")] CloudTable proposalsTable, IBinder binder) { Utils.SetCulture(); var today = DateTime.Today; var withoutVideo = TableQuery.GenerateFilterCondition("Video", "eq", ""); var plans = await PlanHelpers.GetPlansForDate(plansTable, today, withoutVideo); foreach (var plan in plans) { await CloseVote(binder, plansTable, votesTable, proposalsTable, plan); } }
private static async Task <IList <Plan> > GetTodayPlansWithoutResponsible(CloudTable plansTable) { var filter = TableQuery.GenerateFilterCondition("Owner", "eq", null); return(await PlanHelpers.GetPlansForDate(plansTable, DateTime.Today, filter)); }
public static async Task PlanReminder( [TimerTrigger("0 0 9 * * *")] TimerInfo timer, // 9:00AM daily [Table("plans")] CloudTable plansTable, IBinder binder) { Utils.SetCulture(); var today = DateTime.Today; var withoutVideo = TableQuery.GenerateFilterCondition("Video", "eq", ""); // Lundi: Initier le vote pour les vidéos de cette semaine (sauf si aujourd'hui) if (today.DayOfWeek == DayOfWeek.Monday) { var weeksPlans = await PlanHelpers.GetPlansBetween(plansTable, today.AddDays(1), today.AddDays(5), withoutVideo); foreach (var plan in weeksPlans) { await SendMessage(plan); } } // Vendredi: Initier le vote pour les vidéos de lundi prochain if (today.DayOfWeek == DayOfWeek.Friday) { var mondaysPlans = await PlanHelpers.GetPlansForDate(plansTable, today.AddDays(3), withoutVideo); foreach (var plan in mondaysPlans) { await SendMessage(plan); } } // Rappel du lunch & watch d'aujourd'hui var todaysPlans = await PlanHelpers.GetPlansForDate(plansTable, today); foreach (var plan in todaysPlans) { await SendMessage(plan); } async Task SendMessage(Plan plan) { var isToday = plan.Date.Date == today; string message = null; if (isToday) { message = "Rappel: Il y a un Lunch & Watch ce midi!"; if (string.IsNullOrWhiteSpace(plan.Video)) { message += " Votez pour le vidéo si ce n'est pas déjà fait! Vous avez jusqu'à 11h pour choisir."; } if (string.IsNullOrWhiteSpace(plan.Owner)) { message += "\n\nIl n'y a pas encore de responsable pour préparer le vidéo. Cliquez sur _Je m'en occupe_ pour vous porter volontaire!"; } } else { if (string.IsNullOrWhiteSpace(plan.Video)) { message = "C'est le moment de voter pour le vidéo de ce Lunch & Watch :"; } } if (string.IsNullOrWhiteSpace(message)) { return; } await SlackHelper.PostMessage(binder, plan.Team, new PostMessageRequest { Channel = plan.Channel, Text = message, Attachments = { await MessageHelpers.GetPlanAttachment(binder, plan) } }); } }